我有一个数据库应用程序,可存储不同地方的物品价格。每个价格都有以下与之相关的数据:
最后三项(pID,country,pricetype)可以被认为是描述价格目的的一个复合项目;这些数据有很多冗余。所以我在想:将它们分成自己的表来节省空间并简化查询。
Normal:
Prices (price_id, price, date, product_id, country_id, pricetype_id)
vs:
Prices (price_id, price, date, descriptor_id)
Descriptors (descriptor_id, product_id, country_id, pricetype_id)
这值得增加所需的编程工作吗?从长远来看,它会或多或少地具有可扩展性/可维护性吗?
答案 0 :(得分:1)
这值得增加所需的编程工作吗?
是
从长远来看,它会或多或少地具有可扩展性/可维护性吗?
更易于扩展且更易于维护。
一般
您应该始终标准化至少3NF。
请参阅此文章:http://databases.about.com/od/specificproducts/a/normalization.htm
答案 1 :(得分:-1)
这取决于您在该表中预期的数据量。如果没有性能/存储问题,则不需要单独的表(出于性能原因)。
另一方面,您将获得冗余带来的所有缺点。您必须检查数据是否存在不一致等。
但是:无论你选择哪种设计,都还有时间改变你所处的道路。