我新建了一个应用程序,现在我正在考虑两种路径,不知道哪种是继续的好方法。
我正在构建类似电子商务网站的东西,其中包含类别和子类别。
问题在于,网站上有不同类型的产品,每种产品都有不同的属性,并且网站必须可以通过这些产品属性进行过滤。
这是我的初始数据库设计:
现在经过一些分析,我发现这个设计实际上是EAV模型,我读到人们通常不推荐这种设计。
似乎需要为所有事情都使用动态SQL查询。
这是一种方法,我正在考虑它。
另一种方式可能被称为“LOT WORK WAY”,但如果更好的话,我想去那里。 制作表格
我正在构建类似电子商务网站的东西,其中包含类别和子类别。
问题在于,网站上有不同类型的产品,每种产品都有不同的属性,并且网站必须可以通过这些产品属性进行过滤。
这是我的初始数据库设计:
Products{ProductId, Name, ProductCategoryId}
ProductCategories{ProductCategoryId, Name, ParentId}
CategoryProperties{CategoryPropertyId, ProductCategoryId, Name}
ProductPropertyValues{ProductId, CategoryPropertyId, Value}
现在经过一些分析,我发现这个设计实际上是EAV模型,我读到人们通常不推荐这种设计。
似乎需要为所有事情都使用动态SQL查询。
这是一种方法,我正在考虑它。
另一种方式可能被称为“LOT WORK WAY”,但如果更好的话,我想去那里。 制作表格
Product{ProductId, CategoryId, Name, ManufacturerId}
并且可以在数据库中实现表继承,这意味着可以创建类似以下的表:
Cpus{ProductId ....}
HardDisks{ProductId ....}
MotherBoards{ProductId ....}
erc. for each product (1 to 1 relation).
我知道这将是一个非常大的数据库和非常大的应用程序领域,但它是否比使用EAV设计的选项一更好、更容易且性能更好。