|
|
1
0
作为另一个答案,您想要的是EAV模式“实体-属性-值”。这允许您动态添加新属性,而无需更改任何物理表模式。它的性能也很糟糕(但如果只有几百个实体,也不应该太糟糕)。 另一个同样难看的解决方案是添加您认为需要的尽可能多的列,名为Attribute_1、Attribute_2等。然后您就有了一个查找表,可以将属性映射到它们的定义。 这不如EAV模式灵活,但允许您对特定属性进行索引,从而使查询的性能更高一些。 另一种解决方案是使用XML数据类型来保存属性和值。SQL Server具有用于XML数据的内置功能,虽然它不像普通SQL那样易于使用,但它确实工作得很好。 |
|
|
2
0
而不是在表中添加和减去列。我建议您使用一个具有固定属性的表。然后有另一个表存储其他属性(列的名称),然后有第三个表保存人员的id、属性的is off和属性的值。 例如,用户表:
属性表
UserAttribute表:
为了回答您的问题,您可以有两组这些表,但第二个表的AttrValue是布尔值。 中间选项是在表中查找多个备用列,并使用属性表存储列名和布尔值来指示该列是否正在使用 |
|
|
nabroyan · MemSql>add column if不存在 8 年前 |
|
boly38 · oracle可重入alter表 8 年前 |
|
|
Edito · 如何更改特定表格的CHARACTER_MAX_LENGTH 11 年前 |
|
|
user2978621 · 配置单元更改表更改列名 12 年前 |
|
|
Troy Holdreith · 如何向已经有主键的表中添加更多数据? 13 年前 |