【问题标题】:Best practice for database dictionary in javajava中数据库字典的最佳实践
【发布时间】:2012-04-14 12:08:38
【问题描述】:

是否有一种“规范”的方式来表示字典 - 通过 java 持久性 - 数据库维护?

假设我有一张人桌,并且有一列“职业”。

专业集是有限的,但可以扩展。有些职业对系统有一些特殊的含义,比如军人,或者医生。

  1. 我可以将枚举用于职业并将字符串(name() 方法)值存储在数据库中,如 here 所示。它简单易读。
  2. 在数据库中,我可以有一个包含职业(id、name_of_profession)的字典表“profession”,以及具有来自表“profession”的外键(id_profession)的表“people”。枚举将有一个整数 id 值,该值映射到“专业”表中的 id 列。

第一个解决方案简短易行。但在这种情况下,没有应用程序的数据库就没有完整性。第二种“遗留”方式不合适吗?

【问题讨论】:

    标签: java dictionary enums persistence


    【解决方案1】:

    我认为您已经确定了这两种方法的优缺点。这真的取决于您来决定哪个更好......对于您的特定应用程序。

    或者换句话说,“最佳实践”取决于您的应用程序的实际需求。

    【讨论】:

      【解决方案2】:

      您可以结合使用这两种方案:

      • 有一个Professions 表和一个single primary key,职业名称。

      • profession 列中有一个带有外键约束的People 表。

      使用字符串作为主键/外键会影响更新性能,但它会使People 中的每一行自包含,这有利于检索操作。因此,除非基准另有说明,否则这种替代方案可能是可能的。

      【讨论】:

      • 这也是可能的。我只是好奇,是否有“最佳”或“适当”的方式。现在在我看来,这是当前要求和偏好的问题。所以至少有三种可能性。
      猜你喜欢
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 2012-09-16
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 2010-09-27
      相关资源
      最近更新 更多