繁体   English   中英

SQl参考表-动态列

[英]SQl reference table - dynamic columns

我想创建一个参考表。 行和列的数量可以随着时间增长(并且变得多余)。 列名称也可能随时间而变化。 假设第(n)行的“位置”列中的值为“ IT工程师”。 对于列结构中最下方的特定行(n),让我在“ Behind Sheds”列中说,这是我需要检索的值。 如果列数是固定的,那没问题,但是现在可以使用T-SQL动态添加列,这很容易做到,甚至重命名这些列。 我的问题是,为上述示例动态添加列是一种好的做法,还是有更好的选择?如何?

谢谢。

可能最好使用带有字段的加法表之类的东西: person_id (主表的外键), person_param (例如“位置”), person_value (例如“ IT工程师”)?

我相信您的问题是实施EAV模型的正确选择。

基本上没有20列,而是有3列:

  • 实体
  • 属性(也称为列名)
  • 价值(实际上可能是更多价值,不同类型的价值,而您只是填充了正确的价值)

这样,对于数据库中的10个实体(每个实体具有20列),您可以在EAV表中填充200行数据。 它具有较低的性能,较难查询,但确实具有灵活性,因此您甚至可以使每个实体具有不同的属性集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM