在主键上使用id的不良做法

时间:2012-08-12 13:27:07

标签: mysql

我已经读过在主键上使用命名约定id是不好的做法。是这种情况。有些人在网上提到它可能会在创建连接时导致错误。其他人说只要你是一致的或者是好的 - 所以我可以使用id来表示属性或property_id的id,只要我是一致的。

想知道你的想法/选择人 1)只要全面一致,就可以使用property_id或id确定主键。 2)应该使用property_id到主键,以避免在连接上出错 3)最好使用id-可以看到哪一方是连接上的主键,前缀id是不成功的

1 个答案:

答案 0 :(得分:1)

我认为id没问题。反对它的唯一合理论据是在这样的情况下:

select * from foo, bar where id = 'blah'  # id is ambiguous

通常,当您从多个表中进行选择时,您应该对每个列进行限定:

select * from foo, bar where foo.id = 'blah' # no ambiguity

此外,我认为这比使用model_id作为主键更好,因为习惯上将该语法用于外键。