假设我需要将用户信息(即dob,ssn)存储为USER_ATTRIBUTE_MAP表中的记录。
所以这个表格看起来像这样:
[USER_ID] [int],
[ATTRIBUTE_ID] [int],
[ATTRIBUTE_VALUE_ID] int
因此,我想将它们保存到数据类型表中,而不是将值保存到映射表中。 例如,如果类型是日期时间,则会转到ATTRIBUTE_DATETIME_VALUES表:
[ATTRIBUTE_VALUE_ID] int
[ATTRIBUTE_VALUE] datetime
如果值为bit,则会转到ATTRIBUTE_BIT_VALUES表。
实现这一目标的最佳方法是什么。我想在USER_ATTRIBUTE_MAP和ATTRIBUTE_SOMETYPE_VALUES之间建立什么样的关系?如果有的话?
主要问题是我需要有一个外键来处理许多主键关系,这会产生不利的约束。