我有一个关系:
即一个联系人可以发送/接收许多消息
并且可以将一条消息发送给许多联系人,但只接收一个联系人
但是有可能向/不是数据库的联系表中的未知号码发送/接收消息。
由于它是多对多的关系,因此需要将未知数量添加到Contact_Message表中,以便我可以查询它。
...
此外:解释我的担忧,我想:
有没有解决这个问题的方法?
以下是代码:
CREATE TABLE contact ( contactNumber Numeric PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, contactName TEXT NOT NULL ); CREATE TABLE message ( msgID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, messageContent TEXT NOT NULL ); CREATE TABLE contact_m2m_message ( contactNumber NUMERIC NOT NULL REFERENCES contact ( contactNumber ) ON DELETE NO ACTION ON UPDATE CASCADE, messageID INTEGER NOT NULL REFERENCES message ( msgID ) ON DELETE CASCADE ON UPDATE CASCADE );
答案 0 :(得分:0)
您要求可以在没有相应联系人的情况下建立Contact_Message关系。
使用外键,您引入另一个约束,该约束表示所有Contact_Message关系必须具有相应的联系人。
其中一个约束是错误的,根据你的描述,它是第二个。 只需删除外键约束。
如果您仍想要ON UP UPDATE CASCASE操作,则必须使用trigger实现它。