0

我正在构建一个将托管在 Heroku 上的电子商务应用程序,使用他们的 Postgres 数据库,并且该应用程序将使用 Django 构建。将有大量的产品和产品类别,每个产品类别都有详细的信息。每个产品类别都有非常不同的领域。例如计算机与服装。设置数据结构的最佳方法是什么?(选项 a)将所有详细信息字段集中到一个表中。(选项 B)为每种类型的产品详细信息创建一个单独的表。(选项 C)所有产品和详细信息的一张表。还是我没有想到的其他选择?下面是数据结构和相关字段的一个极其简略的示例。

选择权

Table 1 = All products
- Id
- Name
- Model#
- Manufacturer
- Image
- Foreign Key to appropriate product details

Table 2 = Computers (product detail)
- Ram
- Cpu

Table 3 = Clothing (product detail)
- Size
- Color

选项 B

Table 1 = Products
- Id
- Name
- Model
- Make
- Image
- Foreign Key to product detail

Table 2 = Product Detail
- Size
- Color
- Ram
- Cpu

选择权 C

Table 1 = Products
- Id
- Name
- Model#
- Manufacturer
- Image
- Size
- Color
- Ram
- Cpu
4

1 回答 1

0

通常,从良好规范化的设计开始并根据需要进行非规范化比采用其他方式更容易。所以我将从选项 A 开始。请记住,这意味着您的平均读取范围更窄,这意味着从磁盘中检索到的页面更少。假设索引正常,您绝对应该从最规范化的设计开始,然后如果遇到无法通过更好的索引处理的问题,则根据绝对需要进行非规范化。

但是,这种非规范化并不是 OLTP 应用程序的标准,因为它很少有助于整体吞吐量并且会带来巨大的复杂性成本。

于 2013-11-16T05:36:36.720 回答