2

该应用程序用于显示哪些电影院正在放映特定电影及其放映时间

电影表:

info about movie
+----------+----------------------+--------------+
| movie_id | movie_name           | release_date |
+----------+----------------------+--------------+
  M1            Movie A                 2013/4/4
  M2            Movie B                 2013/4/4
  M3            Movie C                 2013/4/4

电影院表:

info about cinema. One cinema can be showing multiple movies at a time

+-----------+---------------+-----------+
| cinema_id | cinema_name   | address   |
+-----------+---------------+-----------+
  C1           Cinema A       #address1
  C2           Cinema B       #address2

Current_movies 表:

Table storing which cinema showing which movies.(Many to many relationship).
+-----------+----------+
| cinema_id | movie_id |
+-----------+----------+
  C1           M1
  C1           M2
  C2           M1
  C2           M2
  C2           M3

问题

我无法弄清楚如何存储显示时间

放映时间是指电影的开始时间。例如:2:40、5:00、8:30 等。

我想过这样做。

+-----------+----------+---------------+---------------+-----------------+
| cinema_id | movie_id | show_time_one | show_time_two | show_time_three |
+-----------+----------+---------------+---------------+-----------------+

但感觉这不是正确的方法。

请建议。

另外请建议当前三个表是否有一些优化。

更新

如果这个问题对你来说不合适,欢迎你投反对票。但也请花一点时间来评论这个问题出了什么问题,以及我该如何改进它以使其可以回答。

4

2 回答 2

4

您需要一个放映时间表:

  cinema_id | movie_id | showtime

所有这三个列一起构成了该表的主键。showtime 列可以是 TIME 数据类型

您可能在该表中有这样的行:

  cinema_id | movie_id | showtime
  C1          M1         14:30
  C1          M1         17:00
  C1          M1         20:30

您可以使用 TIME_FORMAT 函数将存储的时间转换为 am/pm 等。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_time-format

这里的设计原则称为规范化,你应该阅读它。

于 2013-08-11T21:05:13.343 回答
-1

让它像这样:

cinema_id |  movie_id

然后是另一个表“showTime”:

movie_id | show_1 | show2 | show3

像这样它减少了冗余和规范化

于 2013-08-11T21:04:42.087 回答