雖然我一直在寫php很長一段時間,但這總是我學到的技能,我剛剛對錶連接產生了一個小小的信心危機!使用auto_increments加入MySQL中的MyISAM表
假設一個MySQL數據庫auth
含MyISAM表users
和permissions
:
users
- id (auto increment)
- email
permissions
- id (auto increment)
- name
要在許多一對多(或一對多),我一直使用橋接表連接這些表像這樣:
user_permissions
- id (auto increment)
- user_id
- permission_id
(我知道的InnoDB能的關係,但它也更復雜和豬更多的內存,所以對於q的目的,我想留在MyISAM數據)
我特別的問題是:使用自動遞增鍵來連接表是否明智,還是應該生成我自己的附加鍵?
我知道,如果表損壞,我必須重建,或者如果我開始鏡像到兩個數據庫並且鍵不同步,可能會發生問題。我也知道,如果我爲每一行(要在連接中使用)生成一個唯一的散列,那麼生成一個散列並在每次數據插入之前檢查它是新的開銷。
其他人如何做到這一點?這些問題是你在實際情況中看到的嗎?
謝謝你的時間!
亞當
謝謝,我知道怎麼做的SQL - 的問題更多的是在加入了安全使用auto_increments的。 – 2010-01-24 21:15:18
我想我不明白這個問題。你是什麼意思「安全」?自動遞增與加入有什麼關係? – 2010-01-24 22:20:59
根據這個問題,如果數據庫應該損壞或鏡像失敗,如果關係建立在auto_incremented值上,我有可能失去關係嗎? – 2010-01-24 23:38:11