数据库表,休眠

时间:2014-07-31 14:38:54

标签: sql oracle

我正在构建一个具有相当多维护屏幕的Web应用程序。我可能有一个非常基本的问题,但我仍然想要清楚。我已经提供了应该存在的数据库表的草图。表格提供了我确实有一个主键字段,例如dept_id,可以顺序生成。而不是给我的是DEPT_KEY(这是一个varchar2)字段。我只是使用varchar2字段作为主键字段或者我应该有一个按顺序生成的数字字段DEPT_ID。实际上,所提供的字段都没有ID字段。它们都有密钥。

由于

3 个答案:

答案 0 :(得分:0)

传统上,INTLONG字段等数字类型用于PK字段,因为它们可以由DBMS自动生成,并且在存储空间使用方面比{{1}更高效} -type数据类型。

对于字符类型的键字段,您没有使用序列干净地生成键字段值的优势。数据库无法为您管理您的关键字段,您可能不得不想出一些设计方案来保持唯一性。更不用说将浪费的存储空间。

使用CHAR定义一个字段,并将其用作PK字段。

答案 1 :(得分:0)

是的,您可以使用除数字字段之外的其他字段作为主键。数值更简单。

答案 2 :(得分:0)

是的,你可以使用它,但不方便。否则,如果它符合您的需要,您可以在hibernate中生成它,如下所示:

@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String ID;

顺便说一下,通常id为" String" type不是相关ID,它不是系统的外部id ...所以它应该只在你的系统中是唯一的。