我試圖設計一個遊戲的數據庫,我很難在玩家exp和基於關閉範圍的數據庫之間建立關聯。類似等級1的是0 xp,等級2需要200 exp,3需要400,4需要800等等,我希望能夠從「查詢不能查詢的玩家擁有54234 exp。他是23級」有內置的轉換。SQL創建範圍
在我見過的每個例子中(在類似的等級範例中),他們有一個學生被分配了一個A級的分數,他們完全忽略了這個事實,即學生得到了一個92可以表示爲A.使用學生成績數據庫的人如何從「他的平均分數爲73.9」變爲「他得到了C」?
在表
CREATE TABLE Hero
(
hero INT NOT NULL,
totalExpEarned INT NOT NULL,
...
PRIMARY KEY(hero)
);
CREATE TABLE Level
(
level INT NOT NULL,
...
PRIMARY KEY(level)
)
我能想到這樣做將是去像從0-199查找表的最簡單方式的簡化版本是1級,從200〜399是水平兩個等等,這是一個可怕的方式來做到這一點。
老實說,我認爲這是一個很好的跳過「優秀設計」規則並預先計算好的問題。也就是說,我會有一個「經驗」字段和一個「級別」字段,每次我更新經驗時,都會用PHP計算級別,如果它與當前擁有的級別不同,則更新它。它涉及更簡單的查詢,開銷應該是微不足道的。 – ApplePie 2013-04-28 23:12:54