DB中的剧院座位存储

时间:2011-04-07 10:15:39

标签: c# asp.net database

我不确定如何精确地存储预订系统的座位。到目前为止,我一直在想这些桌子是不合适的。我也打算将其作为网页。

  • 显示
    • 编号
    • Theather_Id
    • 名称
    • AgeRating
  • Theather
    • 编号
    • 名称
  • SHOW_TIME
    • 编号
    • Show_Id
    • 时间
  • Show_Day
    • show_time_id
  • Seat_Category
    • 编号
    • 名称
  • Seat_Status
    • 编号
    • 名称
  • 预订
    • ID
    • rowno
    • seatno
    • 用户名(可以为空)
    • seatstatus_id
    • show_timeid
    • 日期
  • 用户
  • 成员
  • Show_Seat_Price
    • show_id
    • seat_category_id
    • START_ROW
    • start_no
    • END_ROW
    • end_seat

我最大的问题是如何将座椅阵列存放在数据库中我还希望进行座位分类,例如青铜,银,金,每个特定部分都有分配的定价。

空白布局:

  

FRONT
  0 0 1 1 1 0 0
  0 1 1 1 1 1 0
  1 1 1 1 1 1 1
  1 1 1 1 1 1 1
      BACK

但是,由于我需要金,银和铜的类别,这进一步使问题复杂化

2 个答案:

答案 0 :(得分:1)

您应该将每个可能的座位存储为数据库中的单个记录,阵列确实不是DB中存储的标准做法;他们必须打破一两个正常形式,但我不记得哪一个;)

每个站点都有一个rownumber,columnnumber等,以及一个唯一的ID。这样你就可以获得每个座位的历史记录,为每个座位存储额外的属性等等。好多了!如果座位坏了,您可以使用旗帜等禁用它 - 如果只有某些座位适合残疾人(例如靠近过道),您也可以将其标记为这样,并查询有多少“可访问”座位是剩下。事实上,绝对好多了:))

要填充,您需要编写存储过程/初始化实用程序。

答案 1 :(得分:0)

既然你已经拥有座位的数字数组,那么调整那个数组怎么样呢?

FRONT
0 0 3 3 3 0 0
0 3 3 3 3 3 0
1 2 2 2 2 2 1
1 1 1 1 1 1 1
BACK

......其中1,2和3代表青铜,银和金。 (我使用了你给出的相同例子,并猜测哪个座位属于哪个类别)

希望有所帮助。