这就是我所拥有的:
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
你明白了。
澄清:
用户可以选择添加计划,然后创建此计划并包括在这些选定日期内将发生的事件的计划,例如,如果发生了3天的Hackathon,则用户可以创建这三天的时间表,将会有时间和活动。例如。 08:00早餐,09:00简介,09:30设备安装
发现这个: 非常标准化,Method for storing/displaying repeating weekly schedule
然而,重复每周时间表更多,这不是我想要实现的。
答案 0 :(得分:1)
您是否按周计划重复一周?
如果不是,我会考虑删除星期和时间表以及使用标准DATETIME
字段的日期。您可以在模型验证中弹出任何限制性措施,它也可以使检测碰撞更容易。
您是否希望定期重复活动?
如果是这样的话,我会制作一个活动表并从时间表中引用它。
如果没有,我可能会满足于描述和时间。
<强> SIMPLE 强>
可重复的活动
周计划周(具有可重复的活动)
始终选择满足您要求的最简单选项!
答案 1 :(得分:1)
规范化!既然你已经这样做了:
// others omitted
activity(id, description)
day(id, time_id, activity_id)
schedule(id, day_id)
我可能会错过一些东西,但愿意纠正。