0
我有點很多關於在OO/DB關係該怎麼辦...單參考爲多個對象
這裏是DB模式:
CREATE TABLE User
Id
CREATE TABLE Location
userId
// EDIT oups, wrong !
// placeId
// Should be :
seatId
CREATE TABLE Game
locationId
現在一些代碼:
class User
{
private Location locations[]; // need this for several reasons...
public function loadFromDatabase()
{
// Load data from DB
// ...
result = DB::query("SELECT Id FROM Locations WHERE userId="+this->Id);
foreach(result)
{
l = new Location();
l->loadFromDatabase(result);
locations[] = l;
}
}
}
class Location
{
private User user;
public function loadFromDatabase()
{
...
}
}
class Game
{
private Location location;
public loadFromDatabase()
{
/*
Here comes the problem :
how to have a reference to a location
created by the User class ?
*/
}
}
A用戶玩遊戲,在幾個地點。 編輯:併爲每個位置用戶在座位上播放。或在另一個座位上... 當我想知道遊戲在哪裏玩過時,我訪問Game.location。當我想知道是誰玩的時候,我訪問Game.location.user
這是我的問題:我想讓Game.location與User.locations中的一個相同,並且我不知道要做到這一點...... 而且,全球範圍內,我覺得有什麼錯我的代碼...
任何幫助嗎? 感謝
謝謝您的回答。你給了我我需要的東西。我沒有提供一些細節,也沒有正確寫出我的類名。而不是placeId,你應該閱讀seatId。用戶可以在一個預定座位上的位置上玩遊戲,並在另一個預留座位上的相同位置玩。但是,你對靜態地圖的解釋正是我所需要的:這樣我就可以保存獨特的實例。順便說一句,按照這種方式是否有任何設計模式? – Antoine 2011-02-07 17:36:15