gpt4 book ai didi

mysql - WebSQL 中表与其自身的一对多关系

转载 作者:行者123 更新时间:2023-11-30 01:14:21 27 4
gpt4 key购买 nike

我正在尝试在 Phonegap 中创建一个应用程序并使用 WebSQL 创建本地数据库。我有一张名为“星星”的表...有很多 Actor /明星...在选择一颗星星的详细信息时,我想向其他相关明星(例如他们的亲戚)显示建议。我可以通过“自连接”来做到这一点。但这只是一对一的关系。这是我的 table ...

var sql =
"CREATE TABLE IF NOT EXISTS stars ( "+
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"firstName VARCHAR(50), " +
"middleName VARCHAR(50), " +
"lastName VARCHAR(50), " +
"title VARCHAR(50), " +
"picture VARCHAR(200))";
tx.executeSql(sql);

sql =
"CREATE TABLE IF NOT EXISTS star_details ( "+
"id INTEGER, " +
"biography VARCHAR(1000), " +
"trivia VARCHAR(1000), " +
"birthday VARCHAR(50), " +
"website VARCHAR(50), FOREIGN KEY(id) REFERENCES stars(id))";
tx.executeSql(sql);

sql =
"CREATE TABLE IF NOT EXISTS recent_movies ( "+
"id INTEGER, " +
"recent_movie1 VARCHAR(1000), " +
"recent_movie2 VARCHAR(1000), " +
"recent_movie3 VARCHAR(50), FOREIGN KEY(id) REFERENCES stars(id))";
tx.executeSql(sql);

现在我正在尝试创建另一个表 star_relations ...但对如何做到这一点感到困惑?

一颗星可能与三颗星相关 - 一个兄弟和他的两个儿子同样,在选择星星(儿子)时 - 关系将是父亲、1 个兄弟和一个叔叔......

对如何实现这一目标感到困惑。

最佳答案

这种层次结构有点问题,因为其中可能存在漏洞,因此为了使其正常工作,您必须为每个关系插入一条记录。即

明星A在明星中可以有兄弟和叔叔,但不能有父亲。

因此,您可以创建一个引用表“关系”,在其中插入关系类型,然后创建一个不同的表,在其中交叉引用两个星号和关系:

关系:id 整数描述 VARCHAR(100)

明星关系id 整数star1_id 整数关系 ID INTEGERstar2_id 整数

这可能会给你一些工作来填补关系,但我认为它可以工作。

关于mysql - WebSQL 中表与其自身的一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19204244/

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