标签: database oracle data-modeling erd
我有为以下问题创建数据库ERD的要求:
该公司现在销售具有以下属性的汽车:
CarId | Car brand | height | weight | passenger count
同时公司交易具有以下属性的计算机:
HardwareID | Ramsize | LCD | ScreensCount |
我们现在需要创建一个新的数据库,一个通用数据库,以保存这些项目和公司将来交易的任何新项目。考虑以下因素:
我只需要一些关于如何创建这样的东西的想法。
答案 0 :(得分:0)
听起来汽车和电脑都是更通用的术语"产品"的子类型。听起来公司将来会添加更多产品类型,而这些产品类型将具有尚未知的属性。
EAV将允许您扩展属性列表而不更改数据定义,但它通常是反模式,正如其他人所建议的那样。问题是,无规则的属性添加可能会导致属性中的同义词,即具有两个或多个名称的一个属性。它甚至可以导致属性中的同音异义词,即具有相同名称的两个或多个属性。一旦发生这种情况,使用数据将与使用非托管数据一样困难。
两个更好的设计模式可能如下:类表继承(click)或单表继承(click)。