【发布时间】:2014-06-27 10:29:05
【问题描述】:
考虑如下的数据结构,其中用户有少量固定设置。
用户
[Id] INT IDENTITY NOT NULL,
[Name] NVARCHAR(MAX) NOT NULL,
[Email] VNARCHAR(2034) NOT NULL
用户设置
[SettingA],
[SettingB],
[SettingC]
将用户的设置移动到单独的表中,从而与用户表建立一对一的关系是否被认为是正确的?与将其与用户存储在同一行中相比,这是否提供了任何真正的优势(明显的劣势是性能)。
【问题讨论】:
-
给定的 Id 是否总是有一个 SettingA、一个 SettingB 和一个 SettingC?或者它可以只有其中一些?当 Id 具有特定设置时,是否总是知道它是其中之一?或者它可以放在其中任何一个下面吗?你打算让它们可以为空吗? (您对“规范化”的使用是可疑的(见下文)。我不想对您对“1:1”的使用做出任何假设。)
-
是的,所有用户的设置完全相同。
-
所以我猜你的意思是:是的,对 or 没有,是的,对 or 没有,并且没有。那么,在哪方面,SettingA、SettingB 和 SettingC 都和 Name 和 Email 一样。
标签: sql database-design rdbms