SQL中的条件关系
假设我需要将用户信息(即dob、ssn)存储为用户属性映射表中的记录 这张桌子看起来像这样:SQL中的条件关系,sql,relational-database,Sql,Relational Database,假设我需要将用户信息(即dob、ssn)存储为用户属性映射表中的记录 这张桌子看起来像这样: [USER_ID] [int], [ATTRIBUTE_ID] [int], [ATTRIBUTE_VALUE_ID] int 因此,我不想将值保存到映射表中,而是想将它们保存到数据类型的表中。 例如,如果类型是datetime,它将转到属性\u datetime\u值表: [ATTRIBUTE_VALUE_ID] int [ATTRIBUTE_VALUE]
[USER_ID] [int],
[ATTRIBUTE_ID] [int],
[ATTRIBUTE_VALUE_ID] int
因此,我不想将值保存到映射表中,而是想将它们保存到数据类型的表中。
例如,如果类型是datetime,它将转到属性\u datetime\u值表:
[ATTRIBUTE_VALUE_ID] int
[ATTRIBUTE_VALUE] datetime
如果该值为位,则会转到属性_位_值表
实现这一目标的最佳方式是什么。如果用户\u属性\u映射和属性\u SOMETYPE\u值之间存在任何关系,我希望创建什么样的关系
主要问题是,我需要一个外键与多个主键之间的关系,这会产生有害的约束。不要这样做。为DOB、SSN等创建单独的列。不要试图在同一列中存储不同的数据。我正在处理数百个用户属性。我正在尝试创建一个通用模型。规范化您的数据,您将不会有数百个用户属性。SQL已经允许通用模型;不要试图这么做。