oi 想要创建一个包含一些用户信息(姓名、密码、电子邮件等)的用户表 我想要另一个表(网站),其中包含网站信息(新表的名称、IP、哈希值、密钥),并且我想要在网站表中拥有一个密钥,我想要一个可以让我访问的密钥一个表格,其中包含阻止该站点的所有用户的列表(我正在构建阻止站点的父控件)
我不知道哪种类型的钥匙可以让我进入桌子
我想您需要第三个(链接)表。我们将其命名为blocked_sites。它应该包含用户表的外键和站点表的外键
您没有指定您使用哪个数据库,因此语法可能与我要发布的示例略有不同(即 Oracle)。
基本上,您的方法是不正确的,因为它要么意味着一个网站只能被一个用户阻止(如果
user_id
列使用标量数据类型),要么它应该是某种嵌套表(很可能不是) ).
通常的方法是创建另一个表来连接用户和网站。该表包含两个外键列,每个外键列都指向相应的主表,而组合则构成主键(以防止重复)。
类似这样的:
SQL> create table users
2 (user_id number generated always as identity primary key,
3 name varchar2(20),
4 email varchar2(50)
5 );
Table created.
SQL> create table websites
2 (site_id number generated always as identity primary key,
3 ip varchar2(20),
4 name varchar2(20)
5 );
Table created.
SQL> create table blocks
2 (user_id number references users,
3 site_id number references websites,
4 --
5 constraint pk_blocks primary key (user_id, site_id)
6 );
Table created.
SQL>