我为最终用户定制的数据库应用程序编写。
通常,这意味着 - 暂时搁置数据库 - 我的一些名义实体类型具有无限的Universe或域。
取名字类型。您可以拥有名字,姓氏,已婚姓名,法定姓名,称呼名称等。我不会在这个宇宙上设置上限。
但我确实需要找到并使用某些众所周知的名称类型。让我们说显示名称和排序名称,只是为了保持简单。
我还希望能够查询所有名称类型(即整个Universe)并返回我的知名名称类型。
在数据库中有几种策略可以实现:
人们使用什么策略?任何战争故事?选择其中一个的任何特殊原因?我没有看到巨大的陷阱?
最佳,
莱尔德
答案 0 :(得分:1)
在你的三个想法中,第一个通常被称为幻数,http://en.wikipedia.org/wiki/Magic_number_(programming),并且是一件坏事,因为任何不“知道”它的代码都会犯错误。另外,随着时间的推移你最终意识到,“哎呀,我需要将最小值推高,需要重新排序10,000个现有行。”头疼,头痛。
之后,其他两个中的任何一个都有效。但第三个允许您使用数据库服务器拒绝对最终用户使用的帐户进行插入/更新/删除访问,从而简化代码。
在选项2和3之间做出决定的方法是问,它们真的是两个独立的东西吗?如果是,他们将倾向于具有不同的安全性,对它们执行不同的操作,一个通过升级修改,另一个不修改等等。如果它们实际上是两个不同的东西,则它们分为两个表。如果它们是一种几乎总是被视为同一种东西的两种口味,它们会进入一个带有“类型”标志的表,选项2。