我必须设计一个模式来存储具有许多属性但很少有共同点的对象。
我在这里找到了一些解决方案,但我仍然不相信最好的办法。我看到了四种方法:
- 一张表有很多字段:这可能会导致很多
NULL
值,并且当需要添加一些属性或修改一些数据类型时会很困难。 - 为每个属性创建一个新表:这使得添加和更新列变得容易,并保留了搜索功能,尽管每个
SELECT
都会导致大量JOIN
. - 为每种类型的属性创建一个表,例如:标签、数量、间隔等。我不确定在这种情况下是否需要区分浮点数、小数、整数等。
- 创建抽象表(我在这里读到它称为观察模式),存储属性名称和数据类型。
我应该遵循哪些标准,我应该回答哪些问题才能在这些解决方案之间进行选择?
谢谢