I’m a tech interested guy. I’ve touched SQL once or twice, but wasn’t able to really make sense of it. That combined with not having a practical use leaves SQL as largely a black box in my mind (though I am somewhat familiar with technical concepts in databasing).

With that, I keep seeing [pic related] as proof that Elon Musk doesn’t understand SQL.

Can someone give me a technical explanation for how one would come to that conclusion? I’d love if you could pass technical documentation for that.

  • DahGangalang@infosec.pubOP
    link
    fedilink
    arrow-up
    18
    ·
    edit-2
    7 days ago

    A given SSN appearing in multiple tables actually makes sense. To someone not familiar with SQL (i.e. at about my level of understanding), I could see that being misinterpreted as having multiple SSN repeated “in the database”.

    Of all the comments ao far, I find yours the most compelling.

    • Barbarian@sh.itjust.works
      link
      fedilink
      arrow-up
      11
      ·
      edit-2
      7 days ago

      Theoretically, yeah, that’s one solution. The more reasonable thing to do would be to use the foreign key though. So, for example:

      SSN_Table

      ID | SSN | Other info

      Other_Table

      ID | SSN_ID | Other info

      When you want to connect them to have both sets of info, it’d be the following:

      SELECT * FROM SSN_Table JOIN Other_Table ON SSN_Table.ID = Other_Table.SSN_ID

      EDIT: Oh, just to clear up any confusion, the SSN_ID in this simple example is not the SSN itself. To access that in this example query, it’d by SSN_Table.SSN

      • DahGangalang@infosec.pubOP
        link
        fedilink
        arrow-up
        2
        ·
        7 days ago

        Yeah, databases are complicated and make my head hurt. Glancing through resources from other comments, I’m realizing I know next to nothing about database optimization. Like, my gut reaction to your comment is that it seems like unnecessary overhead to have that data across two tables - but if one sub-dept didn’t need access to the raw SSN, but did need access to less personal data, j could see those stored in separate tables.

        But anyway, you’re helping clear things up for me. I really appreciate the pseudo code level example.

        • Barbarian@sh.itjust.works
          link
          fedilink
          arrow-up
          5
          ·
          edit-2
          7 days ago

          It’s necessary to split it out into different tables if you have a one-to-many relationship. Let’s say you have a list of driver licenses the person has had over the years, for example. Then you’d need the second table. So something like this:

          SSN_Table

          ID | SSN | Other info

          Driver_License_Table

          ID | SSN_ID | Issue_Date | Expiry_Date | Other_Info

          Then you could do something like pull up a person’s latest driver’s license, or list all the ones they had, or pull up the SSN associated with that license.

          • Arcka@midwest.social
            link
            fedilink
            English
            arrow-up
            2
            ·
            6 days ago

            I think a likely scenario would be for name changes, such as taking your partner’s surname after marriage.