【问题标题】:is this design valid for a database?这种设计对数据库有效吗?
【发布时间】:2016-04-06 00:03:17
【问题描述】:
我正在使用 ASP.NET MVC 和 EF 开发一个在线商店 Web 应用程序。其中一个要求是每个产品都应该分类,每个类别都可以有子类别。
但问题是每个类别都可以有多个未知的属性。所有这些属性都是字符串类型的。
这就是我设计数据库的方式:
- 每个产品可以有多个属性(1 到多个)
- 每个属性都有名称、值、产品(FK)、类别(FK)
- 每个类别都有一个属性列表。这是一个字符串列表(属性名称)
- 我使用每个类别的列表,从子级到最高父级,并将名称和值对添加到每个产品的属性表中。
我担心属性表会增长得非常快。而且我想我可能会用完这些属性的空间。那可能吗?对于这种环境,这是一个可行的设计吗?
【问题讨论】:
标签:
database
database-design
【解决方案1】:
是的;这是有效的设计。您的设计是否符合您的需求是另一个问题。问问自己:
- 我的 products 表在 1、2 和 4 年内会有多少行?
- 我的类别表在 1、2 和 4 年内会有多少行?
- 我的属性表在 1、2 和 4 年内会有多少行?
如果您看到您的产品和类别的属性表随着时间的推移无法控制地增长,那么您可能遇到了扩展问题。另一方面,如果您的产品表在短时间内稳定下来,那么您可能没有问题。
专业提示:当问题成为问题时解决问题(即,听取产品经理的意见,然后添加现实主义...... ;-)。