我建立一个聊天系统的后端的,我有一个Message
表看起来像这样:两个外键引用一个表
的问题是,我需要2个外键指向在同一个表ID上。
没有问题,但在情况下,用户发送多封邮件,数据库说
唯一约束违反
例子:
13 Testmessage1 01.06.17 08:15:01,456554000 2 (sender_id) 23 (receiver_id)
14 Testmessage2 01.06.17 07:09:08,517000000 2 (sender_id) 23 (receiver_id)
最后两个标识是用户ID都是相同的!
我该如何处理?
好吧,如果一封邮件可能有多个收件人,您希望为邮件收件人创建一个表,并将其用于邮件和收件人ID之间的多对多关系。 –
消息只有一个收件人,而不是乘法。我有一个用户表。消息表中必须包含用于用户标识的外键。如果发件人向同一用户写入多个邮件,它会带来“违反唯一约束”错误。那就是问题所在!我还将这两个键设置为unique = False。 – Tim
那么你的独特约束是错误的。它不能仅基于发件人和收件人ID,还必须包含其他内容。 –