簡體   English   中英

MySQL多表與行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM