gpt4 book ai didi

database - 为什么我的数据库表需要主键?

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:53 24 4
gpt4 key购买 nike

在我的数据库中,我有一个用户列表,其中包含有关他们的信息,而且我还有一个功能,允许用户将其他用户添加到候选列表中。我的用户信息存储在一张表中,主键是用户id,而我有另一张表用于入围。候选名单表的设计使其具有两列,基本上只是一对名称的列表。因此,要找到特定用户的候选名单,您需要从第二列中检索所有名称,其中第一列中的 ID 是特定值。

问题是,根据许多来源,例如 Should each and every table have a primary key?您应该在数据库的每个表中都有一个主键。

根据此来源http://www.w3schools.com/sql/sql_primarykey.asp - 唯一标识数据库中条目的主键。所以我的问题是:

  1. 我的数据库中的表有什么问题?为什么需要主键?

  2. 我应该如何给它一个主键?只需创建一个新的自动递增列,以便每个条目都有一个唯一的 id?这似乎没有多大意义。或者我会以某种方式将代表候选名单的多个条目封装到另一个表中的另一个实体中并将其链接进去吗?我真的很困惑。

最佳答案

如果行是唯一的,您可以有一个两列的主键,尽管这可能取决于数据库。这是一个例子:

CREATE TABLE my_table
(
col_1 int NOT NULL,
col_2 varchar(255) NOT NULL,
CONSTRAINT pk_cols12 PRIMARY KEY (col_1,col_2)
)

如果您已经有表格,则示例为:

ALTER TABLE my_table
ADD CONSTRAINT pk_cols12 PRIMARY KEY (col_1,col_2)

关于database - 为什么我的数据库表需要主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com