Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Database Design Preference

Database Design Preference

Scheduled Pinned Locked Moved The Lounge
databasedesignquestion
14 Posts 7 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M mr_lasseter

    Which do you prefer?

    Items to store:
    Human
    BirthDate
    Name
    Age
    PhoneNumber
    Race

    Dog
    BirthDate
    Name
    Age
    Breed
    Color

    Tables:

    Option1
    Animal (Id, BirthDate, Name, Age)
    Human (AnimalId, PhoneNumber, Race)
    Dog (AnimalId, Breed, Color)

    Or

    Option 2
    Human (HumanId, BirthDate, Age, PhoneNumber, Race)
    Dog (DogId, BirthDate, Age, Breed, Color)

    Mike Lasseter

    L Offline
    L Offline
    leckey 0
    wrote on last edited by
    #5

    I like 1 but have used 2. And I agree that since this is more of a polling question, it's valid in the Lounge.

    http://craptasticnation.blogspot.com/[^]

    1 Reply Last reply
    0
    • M mr_lasseter

      Which do you prefer?

      Items to store:
      Human
      BirthDate
      Name
      Age
      PhoneNumber
      Race

      Dog
      BirthDate
      Name
      Age
      Breed
      Color

      Tables:

      Option1
      Animal (Id, BirthDate, Name, Age)
      Human (AnimalId, PhoneNumber, Race)
      Dog (AnimalId, Breed, Color)

      Or

      Option 2
      Human (HumanId, BirthDate, Age, PhoneNumber, Race)
      Dog (DogId, BirthDate, Age, Breed, Color)

      Mike Lasseter

      M Offline
      M Offline
      Marc Clifton
      wrote on last edited by
      #6

      If you have the birthdate, why do you need the age? Or are you planning for the invention of time travel? And what about my pet rock? It has a birthdate and a name, but it's not an animal. Same with my beeniebaby children. They're not animals! But, since you ask, and we're on the path of wierd anyways: table 1: Entity table 2: Entity-Attribute values table 3: attributes table 4: Master Entity Attributes That way, you can add more associations to your entities (like cats, we can't forget cats can we, I mean, my cats are really annoyed right now that only dogs were mentioned) and more attributes, like "sex now", "sex at birth", "sex ever". Marc

      Thyme In The Country
      Interacx
      My Blog

      M P 2 Replies Last reply
      0
      • M mr_lasseter

        Which do you prefer?

        Items to store:
        Human
        BirthDate
        Name
        Age
        PhoneNumber
        Race

        Dog
        BirthDate
        Name
        Age
        Breed
        Color

        Tables:

        Option1
        Animal (Id, BirthDate, Name, Age)
        Human (AnimalId, PhoneNumber, Race)
        Dog (AnimalId, Breed, Color)

        Or

        Option 2
        Human (HumanId, BirthDate, Age, PhoneNumber, Race)
        Dog (DogId, BirthDate, Age, Breed, Color)

        Mike Lasseter

        D Offline
        D Offline
        Douglas Troy
        wrote on last edited by
        #7

        Neither, I like this better: Animal Table (generic common attributes) AnimalID, Animal_SpeciesID, AnimalDOB, Animalcolor, AnimalGender Species Table (aka "Human", "Dog", "Cat", "Bob") SpeciesID, SpeciesName, SpeciesDesc, Species_BreedID Breed Table ("Pitbull", "Retriever") BreedID, BreedName, BreedDescription My 2½ cents.


        :..::. Douglas H. Troy ::..
        Bad Astronomy |VCF|wxWidgets|WTL

        1 Reply Last reply
        0
        • M Marc Clifton

          If you have the birthdate, why do you need the age? Or are you planning for the invention of time travel? And what about my pet rock? It has a birthdate and a name, but it's not an animal. Same with my beeniebaby children. They're not animals! But, since you ask, and we're on the path of wierd anyways: table 1: Entity table 2: Entity-Attribute values table 3: attributes table 4: Master Entity Attributes That way, you can add more associations to your entities (like cats, we can't forget cats can we, I mean, my cats are really annoyed right now that only dogs were mentioned) and more attributes, like "sex now", "sex at birth", "sex ever". Marc

          Thyme In The Country
          Interacx
          My Blog

          M Offline
          M Offline
          mr_lasseter
          wrote on last edited by
          #8

          Marc Clifton wrote:

          like cats, we can't forget cats can we, I mean, my cats are really annoyed right now that only dogs were mentioned

          I'm allergic to cats so I am a little biased.

          Mike Lasseter

          L 1 Reply Last reply
          0
          • M mr_lasseter

            Marc Clifton wrote:

            like cats, we can't forget cats can we, I mean, my cats are really annoyed right now that only dogs were mentioned

            I'm allergic to cats so I am a little biased.

            Mike Lasseter

            L Offline
            L Offline
            leckey 0
            wrote on last edited by
            #9

            I'm allergic and have 3.

            http://craptasticnation.blogspot.com/[^]

            D 1 Reply Last reply
            0
            • M Marc Clifton

              If you have the birthdate, why do you need the age? Or are you planning for the invention of time travel? And what about my pet rock? It has a birthdate and a name, but it's not an animal. Same with my beeniebaby children. They're not animals! But, since you ask, and we're on the path of wierd anyways: table 1: Entity table 2: Entity-Attribute values table 3: attributes table 4: Master Entity Attributes That way, you can add more associations to your entities (like cats, we can't forget cats can we, I mean, my cats are really annoyed right now that only dogs were mentioned) and more attributes, like "sex now", "sex at birth", "sex ever". Marc

              Thyme In The Country
              Interacx
              My Blog

              P Offline
              P Offline
              Pete OHanlon
              wrote on last edited by
              #10

              Marc Clifton wrote:

              Same with my beeniebaby children. They're not animals!

              They're not. They have feelings too.

              Deja View - the feeling that you've seen this post before.

              My blog | My articles

              1 Reply Last reply
              0
              • L leckey 0

                I'm allergic and have 3.

                http://craptasticnation.blogspot.com/[^]

                D Offline
                D Offline
                Douglas Troy
                wrote on last edited by
                #11

                leckey wrote:

                I'm allergic and have 3

                For some odd reason, your comment reminded me of this The Difference[^]


                :..::. Douglas H. Troy ::..
                Bad Astronomy |VCF|wxWidgets|WTL

                L 1 Reply Last reply
                0
                • D Douglas Troy

                  leckey wrote:

                  I'm allergic and have 3

                  For some odd reason, your comment reminded me of this The Difference[^]


                  :..::. Douglas H. Troy ::..
                  Bad Astronomy |VCF|wxWidgets|WTL

                  L Offline
                  L Offline
                  leckey 0
                  wrote on last edited by
                  #12

                  Shouldn't it remind you of this? http://xkcd.com/231/[^]

                  http://craptasticnation.blogspot.com/[^]

                  D 1 Reply Last reply
                  0
                  • M mr_lasseter

                    Which do you prefer?

                    Items to store:
                    Human
                    BirthDate
                    Name
                    Age
                    PhoneNumber
                    Race

                    Dog
                    BirthDate
                    Name
                    Age
                    Breed
                    Color

                    Tables:

                    Option1
                    Animal (Id, BirthDate, Name, Age)
                    Human (AnimalId, PhoneNumber, Race)
                    Dog (AnimalId, Breed, Color)

                    Or

                    Option 2
                    Human (HumanId, BirthDate, Age, PhoneNumber, Race)
                    Dog (DogId, BirthDate, Age, Breed, Color)

                    Mike Lasseter

                    M Offline
                    M Offline
                    Member 96
                    wrote on last edited by
                    #13

                    The annoying answer is "it depends" :) Option 1 seems like a natural preference and I'd take it 9 times out of 9.5 (perhaps even broken out into more tables), but fairly regularly I've run across situations where Option 2 actually fits a given situation better and here's a real world example "ripped from the headlines" (well actually from something I'm doing right now) In fact I have been spending the last few days turning an option 1 into an option 2 in a released application! We originally overthought the design for the contact portion of our application. The contacts are not the most important part, it's not a contact management app, but someone thought it was apparently back in the design stage a few years ago. We have various objects, let's call one of them a customer, anther a vendor etc that can have one or more contacts attached to them. The contacts collection are shared by the different objects. A contact is just a person's name and phone / email record. We had a hugely overwrought system that included a contacts table and a contact phones table corresponding to a grid in the UI that allowed for unlimited number of contacts with separate fields for title, job title, first name, last name, an unlimited sub phones collection under that with country code, area code, phone number, extension phone type (fax, pager etc). Straight out of a text book in terms of normalisation and perfectly wrong for an application that is primarily about other things and not contacts. One contact and one phone number had to be the "primary" ones so we knew what to pipe to the reports (no one want's to print a simple invoice with a dozen phone numbers on it etc) which led in turn to another pile of code to ensure there is always a default contact, default phone, lot's of UI code to deal with the user checkboxing the default and walking the collections to make sure no one else was also the default. It's amazing how it all adds up when you put it into practice. This one decision led to a mess at the entry level, poor performance in the reporting and listing level etc. Reports and lists are big fans of flat data and horrible to work with hiearchical data. Hiearchical data (which is what option 1 triggers up the layers of a typical application) can sometimes be detrimental in unexpected ways. I'm a big fan of irreducable simplicity (as simple as possible but no simpler) when it comes to usability, I don't know where our minds were at the time this was originally designed; I highly suspect one use probabl

                    1 Reply Last reply
                    0
                    • L leckey 0

                      Shouldn't it remind you of this? http://xkcd.com/231/[^]

                      http://craptasticnation.blogspot.com/[^]

                      D Offline
                      D Offline
                      Douglas Troy
                      wrote on last edited by
                      #14

                      hahaha Hadn't seen that one before. classic.


                      :..::. Douglas H. Troy ::..
                      Bad Astronomy |VCF|wxWidgets|WTL

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups