提问人:שילה ברחד 提问时间:11/17/2023 最后编辑:Jason Allerשילה ברחד 更新时间:11/17/2023 访问量:30
Python 中的数据库 SQL [已关闭]
DB SQL in Python [closed]
问:
我想创建一个包含一些用户信息(姓名、密码、电子邮件等)的用户表 并且我想要另一个包含网站信息(名称、ip、哈希、新表的键)的表(网站),并且我想在 websites 表中有一个键,我想要一个键,该键将让我进入一个表,该表包含阻止此站点的所有用户的列表(我正在构建一个阻止站点的父控件)
我不知道哪种类型的键是可以让我进入表的键
答:
0赞
Sergey
11/17/2023
#1
我想你需要第三个(链接)表。让我们将其命名为blocked_sites。它应该包含用户表的外键和站点表的外键
0赞
Littlefoot
11/17/2023
#2
您没有指定您使用的数据库,因此语法可能与我将要发布的示例(即 Oracle)略有不同。
基本上,您的方法不正确,因为它意味着一个网站只能被一个用户阻止(如果列使用标量数据类型),或者它应该是某种嵌套表(很可能不是)。user_id
通常的方法是创建另一个连接用户和网站的表。该表包含两个外键列,每个列都指向相应的主表,而 combination 使主键(以防止重复)。
像这样的东西:
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>
评论
0赞
שילה ברחד
11/17/2023
IM使用sqlite3
0赞
שילה ברחד
11/17/2023
我希望每个网站都有一张桌子。表的名称将是网站的名称,表将具有的 culums 是 userName,每个破坏网站的新用户都会转到正确的表并在那里添加他的名字,所以我想要一个键可以让我进入 currect 表我该怎么做?
0赞
Littlefoot
11/17/2023
不,你不想要那样。这违反了所有规则。那么,您打算如何维护您的应用程序呢?如果出现新的被阻止站点,则必须创建一个新表,并修改使用存储在所有这些表中的数据进行操作的每段代码。简短:没有。
上一个:SQL获取新用户
评论