2011-04-27 49 views
0

我在我的數據庫中有以下模型,但我對我應該做什麼感到困惑。實體模型幫助

如果我有座位表是怎麼回事,它最終將建立這麼多行,A - 1,A - 2等

我怎麼能有這樣的數據拆分,因此不會做到這一點?我希望將seatRow和seatNumber分開,這樣我就可以輕鬆地匹配程序中的值。

感謝

enter image description here

回答

1

在給定的情況下,我看不到座席表中有大量行的問題。這是我相信你所指的。

比方說,你有一個場地,有超過100行1000個座位。

  • 如果你拆分表,你有1個表100個記錄和1個表1000個記錄。
  • 如果你把它們放在一起,你有1個表有1000條記錄。

如果你遵循所有規範化規則,你最終只能將兩個表合併在一起。它的設計看起來很好。將SeatRow和Number放在一起對行數沒有更大或更小的影響。讓他們分裂是一個聰明的想法。 Microsoft SQL Server對此體系結構沒有任何問題,並將其編入索引以提高性能。對於Access和其他基於文件的數據庫,我不熟悉索引策略,因此我無法發表評論。

+0

所以基本上如何讓它在這種情況下更好。但是如果有A - 1,A - 2,A - 3,座位行和數字只是保留了1000條數據。 – 2011-04-27 12:46:13

+0

你所做的完全沒問題。我假設A是一排,1是座位,是的,你會得到很多。這就是爲什麼你有一個數據庫來幫助你簡要列出你需要看到的東西。如果您只需要查詢中的行號,請考慮使用select distinct =) – Perry 2011-04-27 13:02:02

+0

好的感謝信息。 – 2011-04-27 13:06:50

1

你回答你自己的問題:「座位有1行1號」,這樣你就可以創建這些表和在你的座位表中添加外鍵。

+0

我在想,要創建一個SeatRow表和一個SeatNumber表,但仍然覺得它會創建相同數量的數據。 – 2011-04-27 12:24:24

+0

當然你會得到相同的行數。如果您確實想要節省行數並且不需要關於座位的更多詳細信息,則可以將其更改爲存儲座位範圍而不是座位。例如,(A,1,20,2)表示A行,A1表示20個座位,每個座位之間的偏移量爲2(A1,A3,A4,...,A41)。但我不建議這樣做,假設您稍後想要添加有關特定座位的更多信息(例如,範圍A是針對殘疾人的),您將無法做到這一點。 – 2011-04-27 12:35:19

+0

我可能會有一個行表,但不是一個SeatNumber表:Venue-> Row-> Seat。只是因爲我可以設想談論「C排座椅」,而不是「SeatNumber 7的座椅」 – 2011-04-27 12:38:40