【问题标题】:mysql denormalization of multiple entities in one table?一个表中多个实体的mysql非规范化?
【发布时间】:2017-04-26 07:59:12
【问题描述】:

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

每个实体都有自己的属性。例如,eBay 有 ebayItemId/Title/price,而 amazon 有类似 asinNumber/Title/LowestPrice

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

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

【问题讨论】:

    标签: mysql normalization database-normalization denormalization


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 好的,所以我有一个父实体。这基本上是一个带有图片和一些基本属性的项目。孩子们将是这些市场列表。我猜查询是写密集型的。我也认为将孩子们从一张桌子上拉出来并循环遍历它们并根据市场标志显示特定视图会容易得多。
      猜你喜欢
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      • 2018-06-06
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多