我建立一個聊天系統的後端的,我有一個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,還必須包含其他內容。 –