So what is worse than Legacy code? A relational dB that looks like spaghetti. There seems to be little thought going into creating the tables. Also many tables have dubious connections to any other.
Just like anything else in life, it seems nicer when some planning and forethought has gone into the design. Because I come from a micro computer background, every bit and byte is precious. I see the same when making a dB.
The columns give a table character. The rows are the expansion of information as users interact with your system. Within the dB I wish to capture relevant data. Also this data should be relate-able. There should be primary keys that are not duplicated and associated with a concept (or object). There should be foriegn keys that use this to further associated the concept wtih attributes.
Most of all it should be like a junction of several major rivers wtih tributaries and delta’s. Then as one gazes at their junction an awe for the beauty of the creation. Rather than the hair pulling frustration of trying to find ones way through a spaghetti labyrinth of mislabled keys and a myriad of tables.