2

我通常不设计数据库,所以我对如何规范化(或不规范化)用于注册用户的表有一些疑问。我有疑问的领域是:

  • locationTown:我计划对国家进行标准化,并为其设置一个单独的表格,但我应该对城镇做同样的事情吗?我猜用户会在注册时输入这个,而不是从下拉列表中选择。当输入可能来自用户时,可以标准化吗?
  • maritalStatus:我可以选择大约 5 种左右不同的状态。

另外,有人知道找到真实世界数据库模式/规范化示例的好地方吗?

谢谢

4

2 回答 2

1
  • locationTown- 只需将其直接存储在用户表中。否则,您将不得不搜索现有城镇,同时考虑拼写错误和代码大小写。还有一些人使用非标准字符和语言(Kraków vs. Krakow vs. Cracow,另见:罗马化)。如果你真的想要一张带有城镇的表格,至少要提供自动完成框,这样用户更有可能选择现有城镇。否则准备大量重复或几乎重复。

  • maritalStatus- 另一方面,这应该在一个单独的表中。或者更准确地说:使用单个字符或数字来表示婚姻状况。将其映射到人类可读形式的额外表只是为了方便(记住),外键约束确保不使用不正确的状态。

于 2012-05-14T19:11:09.227 回答
-2

我不会太担心——数据库规范化(3NF 等)在学术界被过分强调,而在工业界并不太实用。此外,我们需要查看您的整个架构,以便判断这些实现在哪里是合适的。在担心规范化之前,先关注常用列的索引。

在进一步深入之前,您可能想看看这个 SO question 。

于 2012-05-14T19:11:36.443 回答