我刚刚开始了一个新项目,用户管理各个课程(如在学校),每个课程在一周的不同日期进行。
例如,每周一和周三都有一个小提琴课。但也有一些课程将在多天进行,如每天,但周五,周六和周日。
所以,我的mysql表有以下字段:id int,name varchar,daysOfWeek binary,teacherID int。
我不确定我此时正在做什么,所以我决定将daysOfWeek设置为二进制,以便管理页面在添加新条目时有复选框,并允许您选择哪些日期class取而代之,因此对于一周中的每一天都会生成一个不同的二进制数。
因此,如果我只选择星期一它给我01000000(或64),除了星期六和星期日它给出01111100.第一位是星期日,最后一位被忽略,因为我们一周只有7天。
这是我可以用来存储这些值的最实用的方法。
我的问题是:我做错了吗?有没有其他简单的方法来做到这一点?我应该在表格中的每周为每一天创建一个布尔字段吗?
无论如何,提前谢谢。
答案 0 :(得分:0)
好的,这是一个数据库设计问题而不是php / mysql。
但无论如何....你为什么害怕有更多的专栏?每天一个。这些列实际上可以包含更多信息...例如当天课程的实际时间,或教师,或课程的长度。然后,当您查询时,您可以看到NULL值表示没有课程,并且还允许您查询下午课程或其他任何内容。
从一开始就不要过于担心优化。使用您需要的所有功能构建它,然后再考虑改进它。只有经验才能更好/更早地预见到问题。