我应该在数据库中分离冗余数据吗?

时间:2011-10-04 11:16:47

标签: database schema redundancy

我有一个数据库应用程序,可存储不同地方的物品价格。每个价格都有以下与之相关的数据:

  • 日期
  • 产品ID
  • 国家
  • 价格类型(工厂/批发/零售)

最后三项(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)

这值得增加所需的编程工作吗?从长远来看,它会或多或少地具有可扩展性/可维护性吗?

2 个答案:

答案 0 :(得分:1)

  

这值得增加所需的编程工作吗?

  

从长远来看,它会或多或少地具有可扩展性/可维护性吗?

更易于扩展且更易于维护。

一般
您应该始终标准化至少3NF。

请参阅此文章:http://databases.about.com/od/specificproducts/a/normalization.htm

答案 1 :(得分:-1)

这取决于您在该表中预期的数据量。如果没有性能/存储问题,则不需要单独的表(出于性能原因)。

另一方面,您将获得冗余带来的所有缺点。您必须检查数据是否存在不一致等。

但是:无论你选择哪种设计,都还有时间改变你所处的道路。