I was browsing through a thread somewhere here when I came across an old discussion which set me thinking.
The poster had a table design which contained a number of dates - let's say they were SaleDate, DespatchDate and DeliveredDate in a tPurchases table (I cannot remember exactly, but I don't think the detail matters). The advice given was that, for normalisation purposes, the design should instead include a separate table called tDates, which would have three fields : a foreign key to tPurchases, a string identifying the type of date ("SaleDate", "DespatchDate", etc.) and the date value itself.
Now I don't see that as part of 1NF, 2NF or 3NF - and it seems to me to be adding design complexity for no benefit. Am I wrong ?
The poster had a table design which contained a number of dates - let's say they were SaleDate, DespatchDate and DeliveredDate in a tPurchases table (I cannot remember exactly, but I don't think the detail matters). The advice given was that, for normalisation purposes, the design should instead include a separate table called tDates, which would have three fields : a foreign key to tPurchases, a string identifying the type of date ("SaleDate", "DespatchDate", etc.) and the date value itself.
Now I don't see that as part of 1NF, 2NF or 3NF - and it seems to me to be adding design complexity for no benefit. Am I wrong ?