【发布时间】:2009-02-27 19:56:18
【问题描述】:
我有一个包含一堆字段的表。这些字段可以分成逻辑组——比如工作的项目经理信息。分组本身并不是真正的实体候选者,因为它们没有也不应该有自己的 PK。
目前,为了对它们进行分组,字段具有前缀(例如 PmFirstName),但我正在考虑将它们分成多个表,在主表上具有 1:1 关系。
我这样做时有什么需要注意的吗?这只是一个糟糕的选择吗?
我可以看到,也许我的查询会因为所有额外的连接而变得更加复杂,但可以通过视图来缓解,对吗?如果我们谈论的是记录少于 10 万条的表,这会对性能产生显着影响吗?
编辑:我将进一步证明非实体候选人的想法。此信息由我们的用户群输入。他们不了解/不关心彼此。因此,同一个用户可能会提交相同的“projectManager 名称”或在这一点上不会违反任何约束的任何内容。如果我们想关联来自不同用户的条目,我们可以稍后确定。如果我给这些东西自己的键,它们将以与主表相同的速度增长——因为它们本质上是同一个实体的一部分。没有 pt 是用户从可用的“项目经理”列表中挑选的。
因此,鉴于上述情况,我认为它们不是实体。但也许不是 - 如果您有进一步的想法,请发布。
【问题讨论】:
-
搜索“1:1 关系”并未产生该结果。很抱歉被骗了
标签: sql-server database db-schema