I would say the same thing as well.
The problem with the non-normalized design of Model 1 is that the meaning of the data depends on your one application. Any other application that ever needs to access the database would have to recreate the routines in your application to derive meaning from the stored values.
That goes for not just SELECT statement, but what happens in the first model when a dictionary word is deleted? You are likely to have a lot of orphaned aliases. You would have to manually delete all related entries, or ensure that id number was never used again, even though it would now be free and unique. Not just your app, but for every other application that needed to work with this information ever. It's likely data will be corrupted over time.
When a database is properly modelled, the meaning, context, integrity, etc, is inherent in the data itself. It can be trusted to be right. | [reply] |