Ⅰ 為什麼資料庫設計主表跟子表不建立外鍵關系
為了避免錯誤的提示信息,很多時候資料庫報錯代碼無法捕捉准確的資料庫錯誤。
所以為了方便現在很流行由代碼來維護外鍵信息,而不是由資料庫維護。
也就是責任在代碼中,而不是不負責的丟給資料庫
在資料庫建立外鍵會有同步並發訪問加鎖之類的問題。
所以現在都這么幹了,你也可以去關注一下nosql。
Ⅱ 資料庫為什麼有些表之間無法建立關系
請補充點具體內容啊。光你這幾句話,根本不知道該如何解決你的問題。。。
1.
你用的是什麼資料庫,版本是什麼?
2.
哪些個表間無法建立關系?你希望得到什麼樣的關系?
3.
「表示通過導入excel的」具體是什麼?原始數據需要從Excel中導到資料庫么?
Ⅲ vfp中資料庫中,資料庫表之間不能建立的關系是
要建立永久關系的這三個表必須要屬於同一個資料庫。
打開資料庫設計器,回主表要建立主索答引或候選索引,子表建立普通索引就可以,然後按住左鍵拖動出一條線。
主表必須要建立主索引或候選索引。
子表如果用此欄位也建立的主索引或候選索引,那將建立的是一對一的永久關系。
子表如果用此欄位建立的普通索引,則建立的是一到多的永久關系。
Ⅳ 資料庫都要建立關系嘛,下面是我的資料庫,表之間的關系一定要在資料庫里建好嗎
主明細表建立關系就夠了
至於其他輔助表,什麼用戶表、部門表完全沒有必要建立關系
弄來弄去就亂了
用sql語句處理就好了
Ⅳ 資料庫有必要建立表與表之間的關系嗎 如果有,可以用sql代碼來建立么
不是必須的要建關系的,看業務的需要。
舉個例子,
比如你有個
圖書館管理系統。
有個圖書表[
圖書ID,圖書名...
],有個借閱記錄表
[
借閱人ID,
圖書ID,
借閱時間...]。
某些書遺失了,或者報廢了,需要從資料庫表中刪除。
希望書刪除的同時,
順便把這本書的借閱記錄,順便也一起刪除了。
那麼這種情況下,創建個
DELETE
CASCADE
外鍵約束,
你就不必去寫存儲過程/觸發器之類的去做
當刪除書的時候,還要刪除借閱記錄
的代碼了。
資料庫自動幫你完成。
關系的另外一個用處,就是避免垃圾數據。
還是上面的那個例子
有了外鍵關聯以後,
如果你的操作錯誤,向
借閱記錄表
中
INSERT
數據的時候,
填寫了一個不存在的
圖書ID
那麼資料庫就會提示你,說這條記錄不能插入。
你就會回去仔細看看,你剛才輸入的
圖書ID,
在
圖書表裡面,到底有沒有。