都說互聯(lián)網(wǎng)開發(fā)盡量不用外鍵,那么這里的不用外鍵到底代表的啥意思呢?1.這里有一層意思很明確:不用外鍵約束。比如刪除一張表中的數(shù)據(jù)時,如果要級聯(lián)刪除另一張表中關聯(lián)的數(shù)據(jù),以往是由數(shù)據(jù)庫來級聯(lián)約束的,現(xiàn)在應該將其移到程序中由程序來保持數(shù)據(jù)的一致性。2.另外一層意思:外鍵的定義就是在一個表中的字段是另外一張表中的主鍵。如果僅按照"不使用外鍵"這幾個字的字面理解,就是要把外鍵字段抽取出來放在一張中間表中。簡單說就是都當成多對多來處理。比如用戶(userid,username) 訂單(orderid,totalPrice,userid)問題1:這里useid就是一個外鍵,如果不用外鍵,是否就要設計成這樣?用戶(userid,username) 訂單(orderid,totalPrice)用戶-訂單中間表(userid,orderid)問題2:如果是這樣,假如一張表有多個外鍵,豈不是要有很多中間表?翻遍了百度都是說不要用外鍵,而不是說不用外鍵約束,所以讓我很疑惑,希望各位大大解惑。謝謝了!
添加回答
舉報
0/150
提交
取消