关于在数据库中命名表字段,我有一个实际问题.例如,我有两个表:
student (id int; name varchar(30))
teacher (id int, s_id int; name varchar(30))
Run Code Online (Sandbox Code Playgroud)
两个表中都有'id'和"name".在SQL语句中,如果没有前缀的表名,则两者将不明确.两种选择:
哪一个更好?
对于非临时查询,您应该始终在每个字段前添加表名称或表别名,即使字段名称不明确。如果有人向其中一个表添加新列从而引入歧义,这可以防止稍后查询中断。
这样就可以使“id”和“name”明确无误。但我仍然建议使用比“id”更具体的名称来命名主键。在您的示例中,我将使用student_id
和teacher_id
。这有助于防止连接错误。无论如何,当您遇到具有多个唯一键或多部分键的表时,您将需要更具体的名称。
这些事情值得仔细思考,但最终一致性可能是更重要的因素。我可以处理围绕id
而不是构建的表student_id
,但我目前正在使用不一致的架构,该架构使用以下所有内容:id
、sid
和systemid
特定名称,例如taskid
. 这是两全其美的最糟糕的情况。
归档时间: |
|
查看次数: |
1187 次 |
最近记录: |