【发布时间】:2019-07-28 22:54:12
【问题描述】:
我正在尝试定义一个数据库模式以在表中存储“对象”列表。
主要问题是我需要在表格中列出几何形状和其他类型的标记,以便将它们绘制到谷歌地图上。
例如,一个圆只有 x,y 和半径。一条折线将有一组点,而一个正方形将有......等等......
我的第一个想法是创建 2 个相关的表,例如:
对象
- 身份证
- 姓名
object_details
- 身份证
- object_id(来自对象的外部)
- attribute_type(枚举笛卡尔点、大小等......)
- numeric_attribute_valueA
- numeric_attribute_valueB
- datetime_attribute_value
- 等等……
但这是一个非常丑陋且效率低下的实现,因为我可能需要更多不同的属性数据类型 - 例如文本或时间或其他任何内容,这会使在 object_details 表中创建大部分空行的架构变得复杂。
对此有什么好的/干净的解决方案?
更新:
在将近 5 年之后阅读这个问题,我强烈建议考虑使用任何 Schema-Less 数据库来解决此类问题。
【问题讨论】:
-
这听起来像是古老的 EAV vs Relational Model 辩论的变体。答案实际上取决于您要存储多少不同类型的对象,以及添加新对象的频率。
-
@GarethD 感谢您的参考。同意。