0
我有一個MYSQL表name
,level
和xp
列,另一個與level
,requiredxp
。我想這樣做,如果用戶到達requiredxp
與他們的xp
價值他們改變他們的水平。在這種情況下是否需要使用外鍵?
是否有必要使用主鍵和外鍵進行此操作而無需將信息發送到服務器自動,請檢查xp
,並設置功能有很多的if語句來檢查在該requiredxp
其他表,然後如果它大於用戶xp
更改level
?
我是比較新的MySQL的,所以請糾正我,如果我錯了的東西:)
在你的用例中沒有外鍵是不必要的。在你的用例中,你只需要有一個子查詢或連接來根據需要的xp和當前用戶的xp來確定用戶的級別。您不希望將用戶級別分別存儲在用戶表中,因爲如果您希望更改某個級別所需的xp,可能會導致同步問題。 – hofan41
這並不嚴格回答你的問題,但是,我的觀點是:不要依賴數據庫約束來強制執行你的應用程序的基本邏輯。在代碼中處理更改和奇怪邊緣案例(在您的域中,也許您會添加一個自動賦予額外級別的魔法項)比通過數據庫約束更靈活。 –
因此,請不要使用任何外鍵或主鍵,並且..? – pedritoalfonso