我数据库中的每个 table 是否都应该有一个密钥
Should every table in my database have a key
我有一个 table 有两列:
- team_id |不为空,唯一,主要,auto-increment
- team_name |不为空,唯一
每个团队都是两个会议之一的成员,我有以下会议table:
- team_id |团队的 ID
- 0 或 1,取决于他们是哪个会议的成员。
我的问题是,第二个 table 没有主键。我处理这个问题错了吗?每个 table 都需要自己的主键吗?会议 table 中的 team_id 引用了团队 table 中的 team_id。
如果措辞不当,我深表歉意。我刚刚开始学习这个以补充我的大学学习。如果有什么我可以添加来澄清我的问题,请不要犹豫,我会添加。
感谢您的宝贵时间。
没有主键的表是可以的。这些被称为弱实体它们的存在依赖于强大的实体。网上有很多关于这些的资源,但您可以阅读更多内容 here
我的意思是在这种情况下,第二个 table 是多余的。您可以将所有数据存储在单个 table 中,例如:
create table teams (
team_id int,
team_name varchar(255),
conference_id int2
);
我有一个 table 有两列:
- team_id |不为空,唯一,主要,auto-increment
- team_name |不为空,唯一
每个团队都是两个会议之一的成员,我有以下会议table:
- team_id |团队的 ID
- 0 或 1,取决于他们是哪个会议的成员。
我的问题是,第二个 table 没有主键。我处理这个问题错了吗?每个 table 都需要自己的主键吗?会议 table 中的 team_id 引用了团队 table 中的 team_id。
如果措辞不当,我深表歉意。我刚刚开始学习这个以补充我的大学学习。如果有什么我可以添加来澄清我的问题,请不要犹豫,我会添加。
感谢您的宝贵时间。
没有主键的表是可以的。这些被称为弱实体它们的存在依赖于强大的实体。网上有很多关于这些的资源,但您可以阅读更多内容 here
我的意思是在这种情况下,第二个 table 是多余的。您可以将所有数据存储在单个 table 中,例如:
create table teams (
team_id int,
team_name varchar(255),
conference_id int2
);