我在我的应用程序中成功实现了以下架构。应用程序将桌面单元通道连接到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