我在我的應用程序中成功實現了以下架構。應用程序將桌面單元通道連接到IO單元通道。 DeskUnits和IOUnits表格基本上只是桌面/ IO單元的列表以及每個單元的通道數量。例如,一張桌子可以是4或12個頻道。實現與SQLite的一對多關係
CREATE TABLE DeskUnits (Name TEXT, NumChannels NUMERIC);
CREATE TABLE IOUnits (Name TEXT, NumChannels NUMERIC);
CREATE TABLE RoutingTable (DeskUnitName TEXT, DeskUnitChannel NUMERIC, IOUnitName TEXT, IOUnitChannel NUMERIC);
然後,路由表「表」將每個DeskUnit通道連接到一個IOUnit通道。例如,DeskUnit名爲「分享幫助」頻道5月1日的路線IOunit名「IOUnit1」頻道2等
到目前爲止,我希望這是非常簡單易懂。然而,問題是嚴格的1對1關係。任何DeskUnit頻道都只能路由到1個IOUnit頻道。
現在,我需要實現一個1對多的關係。任何DeskUnit頻道都可以連接到多個IOUnit頻道。我意識到我可能不得不完全重新排列表格,但我不確定最好的方法來解決這個問題。
我是相當新的SQLite和數據庫一般所以任何幫助,將不勝感激。
感謝
帕特里克
非常感謝您的回覆,它真的有幫助。但是,我將如何編寫一個sql語句來顯示特定DeskUnit頻道上的所有IOUnits? – Patrick 2010-06-03 16:50:39
@Patrick:對於DeskUnitChannel 3,儘量'SELECT * FROM IOUnit IU內加入IOUnitChannel IUC上iu.IoUnitId = iuc.IoUnitId其中iuc.DeskUnitChannelId = 3' – Andomar 2010-06-03 17:57:01