我即将创建一个数据库,其中的字段将出现在几个不同的表中(作为键)。例如,在我的列表中,我将拥有MLS_ID。该字段也将出现在listing_photos表中。我应该在字段名称前加上它以使其唯一:listing_MLS_ID作为示例吗?
答案 0 :(得分:2)
这样做绝对没有意义。你总是可以在你的fieldname前面添加数据库和表名,获取你的唯一标识符,保持名称本身的整洁和简洁。
listings.mls.id
将解决id
表中属于mls
数据库的listings
字段。
这将非常灵活:任何时候你需要很长的唯一标识符 - 你拥有它 在所有其他情况下,您可以使用短名称。
答案 1 :(得分:1)
在两个表中命名密钥相同(MLS_ID)。数据库服务器通过让您使用更简洁的USING
子句来奖励您这样做:
SELECT * FROM listings
JOIN listing_photos
USING (MLS_ID)
而不是:
SELECT * FROM listings
JOIN listing_photos
ON listing_photos.listings_MLS_ID = listings.MLS_ID
答案 2 :(得分:0)
这是个人偏好。
对我来说:
除了主键之外,我没有使用本地表名作为前缀。例如 PERSON表将获得PERSON_ID列,ADDRESS表将获得ADDRESS_ID等。
PERSON_ADDRESS表获取PERSON_ID和ADDRESS_ID,而不是别的。
在您的查询中,当列名称等于键时,列名相等,表别名告诉您哪个是哪个。