2011-12-12 67 views
0

我不得不拼成一個酒店連鎖訪問數據庫作爲assingment。 我的困境是,這個任務需要多層次的進步,因爲你進步了層次。超級嵌套表

有各19家不同數量的不同樓層的酒店每 樓都有不同的領域 每一個領域都遂將 最後每個元素都有與它相關聯的項目中它的元素。

想法是你有一個窗體上的多個組合框,您可以選擇在下一個cb中給出相應樓層的酒店。選擇一個地板並列出給定酒店的該地板的相關區域,直到最後的cb給出這些物品。

我很掙扎,因爲表似乎都需要很多關係明智,所以不能看到如何築巢,或者如果這是最好的選擇。

請幫助

+1

待辦事項你有任何鱈魚我們可以看看嗎? – bvd

+0

如果你準確解釋了你遇到的問題,可能會有所幫助。例如,也許你在對組合框中的變化做出反應時遇到麻煩?或者它可能正在編寫一個SQL語句,其中包含多個表或加入多個條件等。 –

+0

我無法知道要將哪些信息放入表中,以便它們可以鏈接。酒店1擁有1至5層,酒店2擁有1至5層,酒店3擁有1至6層。如果這就是我會很好,但我需要指定每個酒店在每個級別上吃的不同區域。例如,酒店1在1級上有一家餐廳,但其他酒店沒有。因此,我需要能夠選擇酒店1,然後選擇1級,然後可以選擇餐廳,而如果選擇酒店2或3,則不應顯示1級餐廳 – Batchy

回答

0

我看不出你有多對多的關係都沒有。酒店桌子涉及地板桌子涉及地區桌子涉及元素桌子涉及物品表格。但是,如果你想模擬許多許多關係使用鏈接表。

所以酒店餐桌上的hotelid作爲PK和其他任何你需要的一般關於酒店的indfo。 floorid與floorid和任何其他地板相關的信息。僅包含hotelid和floorid的HotelFloor表。

但是,如果樓層,面積等結構不是唯一的特定酒店,那麼您只需要這種結構。

0

我認爲你可能會過時地這樣做。對我而言,所有這些關係都是一對多的關係。

我認爲你的困惑的一部分是,你正在考慮一個酒店樓層只是根據其屬性之一,即水平。因此,您認爲A酒店有1層樓,B酒店有1層樓層,因此樓層和酒店之間存在多對多關係。如果樓層的唯一財產是其級別,這將是真實的。但正如您已經指出的,每家酒店的每層都有自己的一套區域。因此,每家酒店的1層樓不能用單個記錄表示。

沒有考慮樓層的層次,而是將每層作爲自己的實體。如果你這樣做,你意識到一個酒店可能有許多樓層實體,但每個樓層實體可能只屬於一個酒店。

一個真實世界的例子,使這個晶瑩剔透:

  • 你走進在旅館A的電梯按3
  • 你的朋友走入酒店B中的電梯並按下3.

如果多對多模型屬實,您和您的朋友在您離開電梯時會並排站立。顯然情況並非如此,所以一對多的關係是合理的。

出於同樣的原因,您示例中的所有關係都是一對多關係。它們可以模擬像這樣:

酒店:(PK)HotelID等
地面:(PK)FloorID,(FK)HotelID,液位等
領域:(PK )areaID表示,(FK)FloorID等
元素:(PK)ElementID,(FK)areaID表示,等
項目:(PK)項ID,(FK)ElementID等

+0

我不相信「元素」和「商品」 '不是m:n;其他一些關係可能是0..1:m(「零或一對多」)。我喜歡你的真實世界的例子:) – onedaywhen

+0

好點。不知道「元素」和「物品」實際上代表什麼,很難肯定地說。 – mwolfe02