我使用 SQL Server 和实体框架作为 ORM。
目前我有一张Product
包含任何类型的所有产品的表格。不同种类的产品具有不同的属性。
例如:
- 所有同类产品
TV
都有属性title
,resolution
并且contrast
- 所有同类产品
Car
都具有类似model
和horsepower
基于这种情况,我创建了一个名为的表Attribute
,其中包含产品的所有属性。
现在要从数据库中获取产品,我总是必须加入所有属性。
要插入产品,我必须将所有属性一一插入为单行。
该应用程序不仅仅是商店或类似的东西。应该可以在不更改数据库的情况下动态添加/删除一种产品的属性。
但我对你的问题仍然是:
- 这是一个糟糕的设计吗?
- 还有另一种方法吗?
- 我的解决方案会显着减慢速度吗?(假设产品有数百个属性,插入需要几秒钟......)
更新
问题是我的应用程序非常复杂。有很多庞大的算法。该软件用于统计目的。
例如,以下问题是一个问题:在算法表中,我存储了哪些属性用于过滤器。假设管理员想要过滤所有小于 100 马力的汽车。过滤器是动态的,这意味着我有一个过滤器表,其中存储过滤器类型(lessThan)和属性(马力)。如何使用建议的方法(使用“硬编码”列)保持这种灵活性?