Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我应该如何命名关系数据库中的字段?_Php_Mysql - Fatal编程技术网

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

Php 我应该如何命名关系数据库中的字段?,php,mysql,Php,Mysql,我将创建一个数据库,其中的字段将显示在几个不同的表中(作为键)。例如,在我的列表中,我将有MLS_ID。该字段也将出现在列表中。我是否应该为字段名添加前缀以使其唯一:例如,listings\u MLS\u ID?这样做毫无意义。您可以始终使用数据库名和表名作为字段名的前缀,获得唯一标识符,保持名称本身整洁简洁 listings.mls.id 将在mls表中寻址id字段,该字段属于listings数据库 这将是非常灵活的:任何时候你需要长的唯一标识符-你有它。 在所有其他情况下,您可以使用短名

我将创建一个数据库,其中的字段将显示在几个不同的表中(作为键)。例如,在我的列表中,我将有MLS_ID。该字段也将出现在列表中。我是否应该为字段名添加前缀以使其唯一:例如,listings\u MLS\u ID?

这样做毫无意义。您可以始终使用数据库名和表名作为字段名的前缀,获得唯一标识符,保持名称本身整洁简洁

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的日子和年龄。