in reply to OT: benefits of database normalization

I'm entering this discussion very, very late to say that I'm surprised by the poor quality of this discussion. While several people did come up with the obvious schema of moving definitions off into their own table, nobody gave you a simple argument why that particular design is obviously right and the others are obviously flawed.

This is supposed to be a dictionary. The most common query that you'll have is to give me the definition of a name. Try to write that query with each schema. Keep in mind that over time if you allow A to be an alias to B, then some day someone is going to make B be an alias to C.

Any schema where you cannot write that query easily, and have it work after obvious data manipulations potentially mess you up, should be rejected in favour of a schema where common stuff is simple. And that holds for other design problems. When you're handed a design, say to yourself, "What do I think that I'll need to do, and how will I do it with this design?" If common operations turn into messes, the design should be viewed with suspicion.

  • Comment on Re: OT: benefits of database normalization

Replies are listed 'Best First'.
Re^2: OT: benefits of database normalization
by revdiablo (Prior) on Oct 09, 2004 at 20:08 UTC
    I'm surprised by the poor quality of this discussion

    Some of it may be my fault. My initial question didn't describe the problem at all, only contained the sample data. I thought it would be obvious what I was getting at, but apparently I was wrong.

    Try to write that query with each schema

    Jenda did indeed illustrate the differences between the designs with sample queries for each one. This is a good general technique, though, and probably deserves to be emphasized. I'll keep it in mind in the future.

      Oops. I (obviously) missed that post.