gpt4 book ai didi

java - SQLite 一对多关系设置/获取外键

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:28 25 4
gpt4 key购买 nike

我正在使用 SQLite DB 构建一个 android 应用程序项目。

我被一对多关系卡住了。

这是一个

private static final String createTableOrders =
"CREATE TABLE " + TABLE_ORDER + "("
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
...
+ KEY_COLUMN_FORMATS + " INTEGER REFERENCES " + TABLE_FORMATS + "(" + KEY_ID + ")"
+ ");";

很多

private static final String createTableFormats =
"CREATE TABLE " + TABLE_FORMATS + "("
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
...
+ ");";

我的问题是设置/获取方法。假设我需要获取一个订单中所有格式的 ID 列表。我想 set 方法也是如此。

我试图在 SO 上找到此类问题,但大多数问题只是针对 SQL 部分。

附言花了 3 个小时试图自己制作它,但我唯一要做的就是使用 GSON 将 ID 列表编码为字符串,但这只是一个死胡同。

编辑:我需要在代码中获取该信息。

P.S.S 我已经做了 18 个小时了,如果这是一个 super 愚蠢的问题,我很抱歉。

最佳答案

一对多关系需要“多”表中的外键列:

CREATE TABLE Orders (
ID PRIMARY KEY
);
CREATE TABLE Formats (
ID PRIMARY KEY,
OrderID REFERENCES Orders(ID)
);

要获取属于订单的所有格式,您只需查找具有该订单 ID 的行:

SELECT * FROM Formats WHERE OrderID = ?

在 Jave 中:

Cursor cursor = db.query(TABLE_FORMATS,
new String[] { whatever columns you need },
"OrderID = " + orderID,
null, null, null, null, null);
while (cursor.moveToNext()) {
// read one order from the cursor
}
cursor.close();

关于java - SQLite 一对多关系设置/获取外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142192/

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