【发布时间】:2015-05-05 13:49:16
【问题描述】:
这就是我所拥有的:
days_of_week
+----+-------------------+
| id | name |
+----+-------------------+
| 1 | Monday |
| 2 | Tuesday |
| 3 | Wednesday |
| 4 | Thursday |
| 5 | Friday |
| 6 | Satday |
| 7 | Sunday |
+----+-------------------+
time
+----------+-------------+
| id | time |
+----------+-------------+
| Integer | hh:mm:ss |
+----+-------------------+
schedule
+---------+---------+----------+---------+
| id | user_id | time_id | day_id |
+---------+---------+----------+---------+
| Integer | Integer | Integer | Integer |
+---------+---------+----------+---------+
我应该把活动栏放在哪里,例如早餐 08:30。现在“早餐”必须存储在这里的某个地方。我暂时不知道在哪里,但如果有人知道如何正确规范化,请与我分享,并告诉我你为什么这样做或推荐这样做。提前非常感谢。
我想要达到的目标:
Monday: Date of that day here
08:00 Breakfast
08:30 Something else
09:00 Introduction
Tuesday: Date of that day here
08:00 Breakfast
09:00 Hackathon begins
12:30 Lunch
你懂的。
澄清一下:
用户可以选择添加一个时间表,然后创建这个时间表,其中包括在这些选定的日子里发生的事情的时间表,例如,如果有一个 Hackathon 发生了 3 天,用户可以创建一个这三天的时间表,以及将要发生的时间和活动。例如。 08:00 早餐,09:00 介绍,09:30 设备安装
发现这个: 非常规范,Method for storing/displaying repeating weekly schedule
但是,更多的是重复每周计划,这不是我想要实现的。
【问题讨论】:
-
哈哈!我当然是设计它的人。但是,我仍然不确定将活动内容放在哪里,还是应该放在单独的表中,然后与日程表连接?
-
“是你不需要前两个表”,这没有意义。考虑长期的可维护性。
-
@Strawberry,向我展示示例、SQLfiddle 或任何使用您的模型的教程,并且它实际上可以工作并且可以长期维护而不会造成大问题,非常感谢。
-
正如 Mike Hillyer 所说,表格的完全标准化可能是可取的,但您可能会发现“完全标准化会给您的设计和应用程序带来 [不必要的] 复杂性”mikehillyer.com/articles/…。在这种情况下,除了我和其他人的建议之外,我认为标准化没有任何好处。
标签: mysql