一个表中多个实体的mysql非规范化?

时间:2016-12-11 08:05:44

标签: mysql normalization database-normalization denormalization

我正在为ebay / amazon / sears / rakuten等建立一个电子商务多渠道列表工具......等等

每个实体都有自己的属性。例如,eBay有ebayItemId / Title / price,而亚马逊有asinNumber / Title / LowestPrice

我的问题是我应该把每个人放在自己的桌子上。或者我应该在一个表中将实体混合在一起,列标题可以根据市场存储不同的数据,很多列可能具有空值。

您认为这是一种很好的方法,还是将它们规范化为多个实体更好?

2 个答案:

答案 0 :(得分:1)

评估您应该执行哪种类型的非规范化的方法是从您需要回答的查询开始,然后组织数据以帮助查询。

如果不考虑查询,就无法找到最佳的表格结构。

例如,针对您的用例的解决方案,请参阅我对https://stackoverflow.com/a/695860/20860的回答

答案 1 :(得分:0)

最好有一个完全规范化的架构。一切都更简单,更一致。

您只对“性能”进行非规范化,这与不同的需求相比,而不是规范化带来的好处。所以最好通过视图或为此目的的特殊表或其他NoSQL数据库等进行非规范化。

使您正确的规范化数据库成为事实的来源。

从真实来源填充/派生你的非规范化数据,并将其用于高速只读操作。如何连接两者是一个实现细节 - 有很多选项取决于你如何实现设计。