2010-01-20 73 views
0

我有有列_id註釋,標題,細節SQLite數據庫,listid如何鏈接SQL數據庫條目?

_id是自動遞增的主鍵
title和細節是字符串數據字段
listid是一個外鍵指向一個列表名稱在另一個表中。

我想找到一種方法,可以在多個列表或註釋中鏈接註釋,以便更新一個將更新另一個或通過其他方式同時編輯。

總體目標是在多個列表中複製相同的註釋,並在其中編輯一個,其餘部分將自動更新。

我想過添加一個額外的列,並且鏈接ID將被所有鏈接的筆記共享,創建一種更新其他筆記的方法。

回答

1

有三個表:

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> 

嗯,轉移舊的筆記以新的結構,我會:

  • 創建一個新的不一個新的自動增量ID字段ES表
  • 然後選擇不同的(注意標題,筆記的詳細信息)轉換成新的音符表
  • 再加入舊鈔表新鈔表上old_title = NEW_TITLE和old_detail = new_detail,然後不同於新的註釋id和舊錶的id,然後將生成的表到NOTES_IN_LIST表
  • 那麼我認爲你可以刪除舊鈔表

確保沒有人編輯或添加筆記選擇,而這正在發生,否則你將失去筆記。

此外,您還需要更新UI才能工作到新的筆記表中,不通過複製而是通過向NOTES_IN_LIST中插入新行來將列表附加到列表中,等等

+0

不幸的是,這可能很難實現,因爲我有一個數據庫,它假設每個音符層次結構有一個列表。如果我要對聯合表格佈局進行這種更改,我不確定是否可以安全地保留用戶的數據。 – CodeFusionMobile 2010-01-21 00:16:32

+0

如何使用SQL編輯我現有的數據庫以匹配此格式? – CodeFusionMobile 2010-01-21 00:18:11

+0

現在給我的答案增加了一個通用的描述。 – 2010-01-21 00:28:00

0

一個音符可以有多個列表,一個列表可以有很多音符。

你需要有一張紙條ID和列表ID

+0

請問你能解釋一下好嗎? – CodeFusionMobile 2010-01-20 23:43:25

相關問題