2011-04-27 92 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