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.

  • 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.