我有一个包含_id,title,details,listid
列的备注的SQLite数据库 _id
是自动递增的主键
title
和详细信息是字符串数据字段
listid
是指向另一个表中的列表名称的外键。
我想找到一种方法,让多个列表或注释中的注释以这样的方式链接,即更新一个将更新另一个或通过其他方式同时编辑。
总体目标是在多个列表中包含相同注释的副本,您可以在其中编辑一个,其余更新自动更新。
我想过添加一个额外的列,其中包含一些链接ID,这些列将由所有链接的笔记共享,从而创建一种更新其他笔记的方法。
答案 0 :(得分:1)
有三张桌子:
NOTE: _id, title, details
LIST: _id, listname
NOTES_IN_LIST: note_id, list_id
然后,无论何时向列表添加注释,都会向NOTES_IN_LIST添加一个新行,将该注释('s note_id)连接到列表('s list_id)。
每当您编辑注释时,只需在注释表中对其进行编辑即可。
每当您列出您拥有id的列表内容时,您都会执行SELECT之类的操作:
SELECT title, details
from NOTE
where NOTE._id in (
SELECT note_id from NOTES_IN_LIST
where list_id=<your list id>
)
或
SELECT title, details
from NOTE, NOTES_IN_LIST
where
NOTE._id=NOTES_IN_LIST.note_id
and
NOTES_IN_LIST.list_id=<your list id>
嗯,为了将旧笔记转移到新结构,我会:
确保在发生这种情况时没有人编辑或添加备注,否则您将丢失备注。
此外,您需要更新UI以使用新的注释表,将注释放入列表而不是通过复制,而是将新行插入NOTES_IN_LIST等。
答案 1 :(得分:0)
一个音符可以有很多列表,一个列表可以有很多音符。
您需要一个具有音符ID和列表ID
的关联表答案 2 :(得分:0)
SQLite 3.6.19+原生支持(并强制执行)外键,请参阅SQLite Foreign Key Support。