【发布时间】:2021-12-31 16:09:15
【问题描述】:
假设我有一个画布,其中可以添加各种对象,例如 a/an:
- 绘图
- 图片
- 图表
- 注意
- 表
对于每个对象,我需要存储尺寸和层顺序,例如:
- 对象ID
- 图层索引
- 尺寸((x1,y1),(x2,y2))
每个对象都有非常不同的属性,因此存储在不同的表(或类或其他)中。是否可以将其存储到关系数据库中,如果可以,怎么做?在 JSON 中会是这样的:
// LayerIndex is the ArrayIndex
// No need to store ObjectID, since the object is stored within the array itself
Layers = [
{Type: Drawing, Props: <DrawingPropertyObj>, Dimensions: [(1,2), (3,4)]},
{Type: Chart, Props: <ChartPropertyObj>, Dimensions: [(3,4), (10,4)]},
{Type: Table, Props: <TablePropertyObj>, Dimensions: [(10,20), (30,44)]},
...
]
我想到的一个选项是将 FK 存储到每个表中,但在这种情况下,我可能会将其加入到每个对象类型的 N 个不同表中,因此如果有 100 个对象类型,...
【问题讨论】:
-
entity–attribute–value model 可以为您的网格对象存储不同的属性。
-
这在this线程和其中的链接线程中得到了充分的回答
-
需要通过对象属性查询db吗?
-
@philipxy 明白了。我认为您看到该问题具有标签
sql-server(以及您从该问题中标记的重复项),是吗?除了一个完整的字面意思是Alternatively, consider using a document databases (such as MongoDB) which natively support rich data structures and nesting.的单句答案之外,没有任何答案涉及潜在的非关系性方式。
标签: database database-design relational-database document-database