当前位置: 首页 > 面试题库 >

Id或[TableName] Id作为主键/实体标识符

陶裕
2023-03-14
问题内容

是首选使用“ Id”作为主键的列名还是使用“ [TableName] Id”作为命名约定?

表:帐户
主键:ID

- 相对 -

表:帐户
主键:AccountId

在我所看到的实现中,似乎分成了大约50%/ 50%。每种方法的优点和缺点是什么?

跟进:

在我的数据库中使用一种约定,在代码中对我的实体使用另一种约定是否有意义?还是应该让它们保持一致?在大多数ORM中,这如何最好地工作?


问题答案:

TableNameID为清楚起见

  1. 提高JOIN的可读性
  2. 例如,当多个FK“ ID”列(PK与FK匹配)时,请进行说明
  3. ID是保留关键字


 类似资料:
  • 问题内容: 因此,我不确定如何问这个问题,因为似乎很容易找到这个问题的答案。 我有3张桌子;ContentHeader,ContentType1和ContentType2。ContentHeader具有主自动递增键。ContentType1和ContentType2都维护指向ContentHeader的主键的外键。这些外键也是它们各自表的主键。 我创建了四个类: 尝试生成架构时,这将引发空指针。我

  • 问题内容: 您实体的ID是 长 (原始类型)还是 长 (对象类型)? 该ID是表的主键,在数据库中从不为“ null”。 我的同事建议使用“对象类型长”。 默认情况下,Hibernate反向工程工具会生成一个长为id的基本类型。 选择什么? 长还是长? 问题答案: 我认为使用Long更好,因为通过检查该值来检查实体是否具有持久身份是更正确的(在MySQL中,您可以将ID设置为0)。另外,像Spri

  • 问题内容: 我在页面上有一个CKEditor的实例。我试图给CKEditor的主体一个类或ID,以便它与我在样式表中定义的某些样式匹配。 有一个API文档应该提供对各个DOM元素的访问权限,但我似乎无法使其正常工作。我尝试以此方式查询的所有对象都未定义。 有人知道如何执行此操作,或如何正确处理CKEditor的dom元素吗? 编辑 :谢谢大家,nemisj的回答对我有用,但是由于某种原因,我没有在

  • 问题内容: 我想获得Windows,MacOS和Linux(如果可能)上具有Java的计算机唯一的ID。可能是磁盘UUID,主板S / N … 可以使用(它不是applet)。 有想法吗? 问题答案: MAC地址的问题是计算机上可能连接了许多网络适配器。默认情况下,大多数最新的默认设置为两个(Wi-Fi +电缆)。在这种情况下,必须知道应该使用哪个适配器的MAC地址。我在系统上测试了MAC解决方案

  • 我有一个JPA实体的类层次结构,基类是定义了一个ID的MappedSuperclass。我试图在子类中使用复合键,但这似乎不起作用

  • 问题内容: 我有一个SQL语句,例如: 一旦成功,我需要返回自动生成的ID(INT主键),以便可以在第二条语句中使用它。 这可能吗?请提供一个例子。 问题答案: 像这样: