MySQL 不用外來鍵的話,如何讓表起來關聯呢?

時間 2021-05-12 04:45:44

1樓:myhlcb

表關聯跟外來鍵是兩回事。

1.使用外來鍵做表關聯只是為了保證資料一致性。但是這點完全可以通過事務解決

2.使用外來鍵在高併發情況下會造成死鎖。所以一般不建議使用外來鍵。

2樓:SevenMonths

練習的話,可以用命令列新增外來鍵,好的作用就是方便級聯操作,比如主表和從表有外來鍵關鍵,你可以更新主表的同時,從表連帶更新。但在實際應用中不建議用命令繫結外來鍵,主要是怕操作失誤。其實想關鍵表,大可以sql語句邏輯關聯就好。

個人見解。

3樓:

舉個例子:

table1 下乙個column1 關聯 table2 下的column2 ,如果資料庫要擴容呢。。。乙個table如果存幾W記錄,查詢等還OK的花,如果是幾千W,上億的呢?。。想想,這個外來鍵要怎麼建立?

跨庫? 跨資料庫伺服器?

如果還得擴容呢?....

4樓:mysqlops

首先關於外來鍵的作用與使用場景:

1.作用:通過資料庫提供的外來鍵功能,進行資料完整性和一致性的維護,避免借助外部力量維護;

2.使用場景:若是高併發大流量事務場景,使用外來鍵可能容易造成死鎖,以及資料庫資源更快出現瓶頸,所以一般網際網路行業不建議使用,多使用再企業內部,比如ERP軟體,早期的MIS系統等

關於如何體現表與表之間的關聯性和如何維護資料完整性和一致性:

1.關聯性:那就是設計資料庫的時候,要讓所有人知道表與表之間的通過那個字段關聯起來,所以欄位名稱命名上會做一些文章

2. 如何維護資料完整性和一致性:通過外部程式的力量,啟用事務的方式,比如:

START TRANSACTION;

UPDATE A SET co1=** ...;

UPDATE B SET A_co1=**...;

COMMIT;

注釋:假設場景 A表的col1變成某值之後,B表中的A_col1欄位也必須修改為對應的值...

5樓:Chairo

table A

iduid

table B

iduid

則完全可以靠A和B共有的uid來關聯兩表

SELECT A.id, B.id FROM A INNER JOIN B ON A.uid=B.uid

為什麼很多mysql課程不推薦用物理外來鍵?

遺跡 二來就是不用外來鍵的場景基本上資料錯了就錯了,問題不大,不想花費讓db自己維護資料關係的效能代價 用不用還是得自己感覺,大多數情況下在一致性上資料庫都比應用自己寫的邏輯靠譜 李豫君 效能問題 做所有寫入操作都會檢查,這樣會導致加鎖。若是在高併發大流量事務場景,使用外來鍵更容易造成死鎖。如果有兩...

資料庫不用外來鍵的話通過什麼方法保證一致性呢?

收發室柳大爺 1 靠事務回滾。2 靠維護計畫。3 靠人肉愣刷。非高併發業務系統,資料庫如果不是主要負載和瓶頸,對資料完整度要求高的話,可以考慮使用外來鍵 觸發器等技術手段。普通的網際網路專案,乾脆就忘掉有外來鍵這回事吧,不然煩惱無窮,不是不好,是不划算。設計開發人員,應該先把資料庫單純當做乙個很慢很...

iPhone 的 Home 鍵為什麼不用觸控鍵代替物理按鍵呢?

cheung steven 原因有2 1.參與感之深度 當你和乙個事物發生關係,發生的方式有多種。深度進入 是其中的一種。觸控,是 淺度 的,按壓 進入 是深度的。即如iphone7,它對物理觸受的反饋模擬,是讓參與者在 深度進入 僅僅對於淺度觸控則已經滿足者,是不多的,此為副交感神經發達之象。而現...