该应用程序用于显示哪些电影院正在展示特定的电影及其节目时间。
电影表:
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 |
+-----------+----------+---------------+---------------+-----------------+
但是觉得这不是正确的方法。
请建议。
另外请建议当前三个表是否有一些优化。
更新
如果您认为这个问题不合适,欢迎您投票。 但是请花一点时间评论这个问题有什么问题,如何改进它以使其回答。
答案 0 :(得分:4)
您需要一个showtime表:
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函数将存储的时间转换为上午/下午等。http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_time-format
这里的设计原则叫做 normalization ,你应该阅读它。
答案 1 :(得分:-1)
像这样:
cinema_id | movie_id
然后是另一个表“showTime”:
movie_id | show_1 | show2 | show3
像这样,它的再现性和规范化程度较低