我正在尝试使用以下格式存储数据,并且不确定在SQLite中进行组织的最佳方法:
-主要项目
-字段1
-字段2
-字段3(主图像)
----图像路径
----拍摄日期图像
-字段4
-字段5(图像阵列)
----每个图像都是上面的路径和日期对
我当时在想2张桌子? 1为主要项目,主要图像路径和日期仅是两个特定列;那么第二张表将是ID与主要商品相关联的图片列表?
有更好的方法吗?似乎管理和更新两个表都比较麻烦,但是如果那是最好的方法,那就是这样
我正在尝试使用以下格式存储数据,并且不确定在SQLite中进行组织的最佳方法:
-主要项目
-字段1
-字段2
-字段3(主图像)
----图像路径
----拍摄日期图像
-字段4
-字段5(图像阵列)
----每个图像都是上面的路径和日期对
我当时在想2张桌子? 1为主要项目,主要图像路径和日期仅是两个特定列;那么第二张表将是ID与主要商品相关联的图片列表?
有更好的方法吗?似乎管理和更新两个表都比较麻烦,但是如果那是最好的方法,那就是这样
如评论中所述,您应该阅读有关关系数据库的基础知识。数据库的词汇不同于编程的词汇。 SQLite是一个基本的数据库引擎,仅支持基本数据类型,因此在学习了关系数据库概念之后,您应该专门阅读sqlite。
以下是您的问题的非正式摘要:
您的特定问题可以通过以下模式解决:
CREATE TABLE mainitem(
id INTEGER PRIMARY KEY,field1 TEXT,field2 INTEGER
);
CREATE TABLE image(
id INTEGER PRIMARY KEY,datetaken TEXT,path TEXT,mainitem INTEGER,FOREIGN KEY(mainitem) REFERENCES mainitem(id)
);
ALTER TABLE mainitem
ADD COLUMN mainimage INTEGER REFERENCES mainitem(id) DEFAULT NULL;
要获取图像数组,其中主项目的ID == 3:
SELECT * FROM image WHERE mainitem = 3;
要获得带有其主图像的主要物品:
SELECT *
FROM mainitem
LEFT OUTER JOIN image
ON mainitem.mainimage = image.id
WHERE mainitem.id = 3;