SQL 连接两个表的 ID 的命名约定
SQL Naming Convention for ID that joins two tables
我使用驼峰式大小写作为我的列名,我试图不只使用 ID 作为我的 tables 的主键。
因此,对于某些 table 之类的人来说,这似乎是个等待。配置文件 Table 我调用主键 profileID 但是将两个 table 连接在一起的 table 呢?该 ProfileImageID 的约定是什么?这似乎令人困惑,只是称它为 ID 会更好吗?对于主键,命名约定只是 ID 还是 ____ID?
简介Table
userID (PK) | Name
个人资料图片Table
??? (PK) | userID | photoID
图片Table
photoID(PK) | Image
我的建议:以复数形式命名 table 并使用 table 名称(单数形式)加上 "Id" 作为键:
create table Profiles (
ProfileId int . .
);
create table ProfileImages (
ProfileImageId int . . .,
ProfileId int references Profiles(ProfileId),
ImageId int references Images(ImageId)
);
create table Images (
ImageId int . . .,
. . .
);
命名约定没有唯一正确答案。但是,一致性和可理解性很重要。你应该不做的是有一个名为Images
的table和一个名为PhotoId
的主键。这只会带来一定程度的混乱。
我使用驼峰式大小写作为我的列名,我试图不只使用 ID 作为我的 tables 的主键。
因此,对于某些 table 之类的人来说,这似乎是个等待。配置文件 Table 我调用主键 profileID 但是将两个 table 连接在一起的 table 呢?该 ProfileImageID 的约定是什么?这似乎令人困惑,只是称它为 ID 会更好吗?对于主键,命名约定只是 ID 还是 ____ID?
简介Table
userID (PK) | Name
个人资料图片Table
??? (PK) | userID | photoID
图片Table
photoID(PK) | Image
我的建议:以复数形式命名 table 并使用 table 名称(单数形式)加上 "Id" 作为键:
create table Profiles (
ProfileId int . .
);
create table ProfileImages (
ProfileImageId int . . .,
ProfileId int references Profiles(ProfileId),
ImageId int references Images(ImageId)
);
create table Images (
ImageId int . . .,
. . .
);
命名约定没有唯一正确答案。但是,一致性和可理解性很重要。你应该不做的是有一个名为Images
的table和一个名为PhotoId
的主键。这只会带来一定程度的混乱。