我应该如何命名关系数据库中的字段?

时间:2012-04-30 18:56:41

标签: php mysql

我即将创建一个数据库,其中的字段将出现在几个不同的表中(作为键)。例如,在我的列表中,我将拥有MLS_ID。该字段也将出现在listing_photos表中。我应该在字段名称前加上它以使其唯一:listing_MLS_ID作为示例吗?

3 个答案:

答案 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,而不是别的。

在您的查询中,当列名称等于键时,列名相等,表别名告诉您哪个是哪个。