Php 我应该如何命名关系数据库中的字段?
我将创建一个数据库,其中的字段将显示在几个不同的表中(作为键)。例如,在我的列表中,我将有MLS_ID。该字段也将出现在列表中。我是否应该为字段名添加前缀以使其唯一:例如,listings\u MLS\u ID?这样做毫无意义。您可以始终使用数据库名和表名作为字段名的前缀,获得唯一标识符,保持名称本身整洁简洁Php 我应该如何命名关系数据库中的字段?,php,mysql,Php,Mysql,我将创建一个数据库,其中的字段将显示在几个不同的表中(作为键)。例如,在我的列表中,我将有MLS_ID。该字段也将出现在列表中。我是否应该为字段名添加前缀以使其唯一:例如,listings\u MLS\u ID?这样做毫无意义。您可以始终使用数据库名和表名作为字段名的前缀,获得唯一标识符,保持名称本身整洁简洁 listings.mls.id 将在mls表中寻址id字段,该字段属于listings数据库 这将是非常灵活的:任何时候你需要长的唯一标识符-你有它。 在所有其他情况下,您可以使用短名
listings.mls.id
将在mls
表中寻址id
字段,该字段属于listings
数据库
这将是非常灵活的:任何时候你需要长的唯一标识符-你有它。在所有其他情况下,您可以使用短名称 这样做毫无意义。您可以始终使用数据库名和表名作为字段名的前缀,获得唯一标识符,保持名称本身整洁简洁
listings.mls.id
将在mls
表中寻址id
字段,该字段属于listings
数据库
这将是非常灵活的:任何时候你需要长的唯一标识符-你有它。在所有其他情况下,您可以使用短名称 这是个人偏好 对我来说: 除了主键之外,我不使用本地表名作为前缀。例如 PERSON表将获得PERSON\u ID列,ADDRESS表将获得ADDRESS\u ID等 PERSON\u ADDRESS表获取PERSON\u ID和ADDRESS\u ID,而不是其他内容
在查询中,列名在作为键应该相等时是相等的,表别名告诉您哪个是哪个。这是个人偏好 对我来说: 除了主键之外,我不使用本地表名作为前缀。例如 PERSON表将获得PERSON\u ID列,ADDRESS表将获得ADDRESS\u ID等 PERSON\u ADDRESS表获取PERSON\u ID和ADDRESS\u ID,而不是其他内容
在查询中,列名在作为键应该相等时相等,表别名告诉您哪个是哪个。在两个表中为键命名相同的名称(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
将两个表中的键命名为相同的(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
我建议在列出现的每个表中使用相同的名称(这使连接条件更容易-可以使用
USING
或甚至NATURAL join
合并公共列)。对此有不同的意见:我建议在列出现的每个表中使用相同的名称(它使连接条件更容易-人们可以使用USING
甚至NATURAL join
来合并公共列)。关于这一点,有各种不同的观点:没有那么大的回报,特别是在ORM的日子和年龄。没有那么大的回报,特别是在ORM的日子和年龄。