假设我正在建立一个关于汽车的网站。汽车实体有很多类似枚举的属性:
- 传输(手动/自动)
- 燃料(汽油/柴油/生物乙醇/电)
- 车身样式(轿跑车/轿车/敞篷车/...)
- 空调(无/简单/双区)
- 外观颜色(黑色/白色/灰色/蓝色/绿色/...)
- 内饰颜色(黑色/白色/灰色/蓝色/绿色/...)
- 等等
这些属性的列表将来可能会发生变化。在数据库中对它们建模的最佳方法是什么?我可以想到以下选项,但不能真正决定:
- 使用带有枚举值的
car
表中的字段- 以后很难添加更多列,可能是最快的
- 使用
car
表中的字段作为引用查找表的外键- 以后很难添加更多的列,有点慢
- 为每个存储可能值的属性创建单独的表,并创建另一个表来存储汽车与属性值之间的联系
- 方便以后添加更多可能的值,甚至更慢,似乎太复杂了
最佳答案
理想情况是创建一个关系数据库。 DB 中的每个表都应该由一个类表示,就像在休眠中一样。你应该为汽车制作2张 table 。一种用于汽车内部,一种用于汽车外部。如果您想添加额外的功能,只需添加更多列即可。
关于sql - 如何在数据库中表示一个实体的许多相似属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13425574/