gpt4 book ai didi

javascript - 一对多外键关系 Sqlite

转载 作者:行者123 更新时间:2023-12-03 11:12:45 26 4
gpt4 key购买 nike

所以现在我正在尝试使用 sqlite 绘制 3 个不同表之间的关系我对 sqlite 比较陌生,但看到您可以通过使用外键来绘制关系,从而优化性能。现在这是我创建表的 sql 语句:

'CREATE TABLE IF NOT EXISTS shifts (
shifts_id primary integer,
shift_base_id integer,
shift_site_id integer)';

'CREATE TABLE IF NOT EXISTS sites (
site_id primary integer,
site_info text,
FOREIGN KEY(site_id) REFERENCES shifts(shift_site_id))';

'CREATE TABLE IF NOT EXISTS bases (
base_id primary integer,
base_info text,
FOREIGN KEY(base_id) REFERENCES shifts(shift_base_id))';

所以我想做的是通过 id 绘制子表(站点和基地)与父表(类次)之间的关系。我遇到的问题是我收到“外键不匹配”错误。我在某处读到,在 sqlite 中,您只能引用父表中的主键或唯一键。这样做的问题是多个类次可以共享相同的站点和基地。例如,base_id 可以等于 1234,多个类次的 shifts_base_id = 1234。

有时,基础表中的base_id 在类次表中不会有匹配的shift_base_id。

所以我的问题是如何引用多个表之间的一对多关系?以及如何使该关系成为可选的。

最佳答案

你的人际关系倒退了。您在表中列出引用其他表的外键。

CREATE TABLE IF NOT EXISTS shifts (
shifts_id primary integer,
shift_base_id integer,
shift_site_id integer,
FOREIGN KEY (shift_base_id) REFERENCES bases (base_id),
FOREIGN KEY (shift_site_id) REFERENCES site (site_id));

关于javascript - 一对多外键关系 Sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27494387/

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