正常化性别表走得太远了吗?

Ada*_*dam 10 database wpf database-design

我不是数据库人,但我正在尝试清理另一个数据库.所以我的问题是,将性别表正常化会走得太远吗?

User table:
userid int pk,
genderid char(1) fk
etc...

gender table:
genderid char(1) pk,
gender varchar(20)
Run Code Online (Sandbox Code Playgroud)

现在起初它对我来说似乎很愚蠢,但后来我考虑了它,因为我可以有一个恒定的数据源来填充或绑定.我将使用WPF.如果它是另一个框架我可能会避免它,但你怎么看?

Ben*_*ack 11

您是否选择规范化表格结构以适应性别取决于您的应用程序和业务要求的要求.

如果:

  • 您希望能够在数据库中管理性别的"描述",而不是代码.
    • 例如,这允许您快速将描述从男/女改为男/女.
  • 您的应用程序目前必须处理或将来可能处理本地化要求,即能够指定不同语言的性别.
  • 您的业​​务需要将所有内容规范化.

如果符合以下条件我不会正常化

  • 您有一个相对简单的应用程序,您可以在代码中而不是在数据库中轻松管理性别描述.
  • 您可以对进出性别字段的数据进行严格的程序控制,以确保该字段中数据的一致性.
  • 您只关心信息捕获的性别字段,这意味着,一旦第一次设置,您就没有很多编程需要更新此字段.