我有有列_id註釋,標題,細節SQLite數據庫,listid如何鏈接SQL數據庫條目?
_id
是自動遞增的主鍵
title
和細節是字符串數據字段
listid
是一個外鍵指向一個列表名稱在另一個表中。
我想找到一種方法,可以在多個列表或註釋中鏈接註釋,以便更新一個將更新另一個或通過其他方式同時編輯。
總體目標是在多個列表中複製相同的註釋,並在其中編輯一個,其餘部分將自動更新。
我想過添加一個額外的列,並且鏈接ID將被所有鏈接的筆記共享,創建一種更新其他筆記的方法。
我有有列_id註釋,標題,細節SQLite數據庫,listid如何鏈接SQL數據庫條目?
_id
是自動遞增的主鍵
title
和細節是字符串數據字段
listid
是一個外鍵指向一個列表名稱在另一個表中。
我想找到一種方法,可以在多個列表或註釋中鏈接註釋,以便更新一個將更新另一個或通過其他方式同時編輯。
總體目標是在多個列表中複製相同的註釋,並在其中編輯一個,其餘部分將自動更新。
我想過添加一個額外的列,並且鏈接ID將被所有鏈接的筆記共享,創建一種更新其他筆記的方法。
有三個表:
NOTE: _id, title, details
LIST: _id, listname
NOTES_IN_LIST: note_id, list_id
然後,一旦你添加註釋到一個列表,添加一個新行NOTES_IN_LIST連接該說明(記者note_id)到列表中(的LIST_ID)。
每當你編輯一個筆記,你只需在注表中編輯它。
當你列出清單,你有id爲內容,你做一個選擇是這樣的:
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中插入新行來將列表附加到列表中,等等
的SQLite 3.6.19+原生支持(和執行)外鍵關聯表,見SQLite Foreign Key Support。
外鍵不支持將兩個以上的筆記鏈接在一起。 – CodeFusionMobile 2010-01-20 23:45:18
不幸的是,這可能很難實現,因爲我有一個數據庫,它假設每個音符層次結構有一個列表。如果我要對聯合表格佈局進行這種更改,我不確定是否可以安全地保留用戶的數據。 – CodeFusionMobile 2010-01-21 00:16:32
如何使用SQL編輯我現有的數據庫以匹配此格式? – CodeFusionMobile 2010-01-21 00:18:11
現在給我的答案增加了一個通用的描述。 – 2010-01-21 00:28:00