4

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

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

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

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

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

4

2 回答 2

2

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

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

于 2012-04-14T12:15:50.070 回答
0

您可以使用两种方案的组合:

  • 有一个Professions带有单个主键的表,即职业名称。

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

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

于 2012-04-14T12:32:10.453 回答