[英]MySQL multiple tables vs rows
我在這里讀了很多關於這個討論的帖子,但我的問題是具體的。
請在回復前完整閱讀。
我想知道在數據庫中是否最好有數百行甚至數千行,或者在多個表中拆分它。
場景是:我有一個用戶,一次只能在一個城市中。 (有多個城市,例如巴黎,柏林和倫敦)現在每個城市都有很多地區(可能有幾百個)。 我在想,給每個城市提供自己的桌子會更有效率。
例如:
rooms_london
- 倫敦的所有地區都在這里
rooms_berlin
- 這里的所有柏林地區都是行
對於巴黎以及我將來添加的任何其他城市等等。
然后在PHP中我可以構造一個類似於的查詢:
SELECT * FROM rooms_$playerCity WHERE roomID = $playerRoom
這是一種有效的方法,還是應該在中心房間表中添加一個額外的列。
如果我不夠清楚,我會盡力澄清你需要的任何東西。
非常感謝
我不會把房間分成不同的桌子。
如果性能成為問題,我會使用分區http://dev.mysql.com/doc/refman/5.5/en/partitioning.html
+------+ +------+
| City | 1 ---- * | Room |
+------+ +------+
是...數據庫中的數千行還是跨多個表拆分。
在具有復雜查詢和索引不足的幾百萬行之前,性能不會成為問題
我不使用MY SQL,但我的SQL Server表設計看起來像這樣
Create Table Player (
PlayerID int
...
)
Create Table City (
CityID int
...
)
Crate Table Rooms (
RoomID int
CityID int
...
)
Create Table PlayerRoom (
PlayerID int
RoomID int
ChaeckIn DateTime
CheckOut DateTime
...
)
然后要獲得一個房間中的最后一個玩家,你可以查詢
Select Top 1 * from PlayerRoom where Roomid = @roomID order by CheckIn Desc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.