Mysql 可用性(时间间隔)表的数据库设计
在我的网络应用程序中,我有父母和保姆。Mysql 可用性(时间间隔)表的数据库设计,mysql,Mysql,在我的网络应用程序中,我有父母和保姆。 保姆将声明工作可用性(时间间隔),并将其存储在可用性表中。 家长也会在时间间隔内表达他们的需求(此时无需存储)。 因此,我将可用性表设计为: +------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------
保姆将声明工作可用性(时间间隔),并将其存储在可用性表中。
家长也会在时间间隔内表达他们的需求(此时无需存储)。
因此,我将可用性表设计为:
+------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+-------+
| user_id | bigint(20) unsigned | NO | MUL | NULL | |
| week_day | tinyint(1) | NO | | NULL | |
| hour_start | varchar(10) | NO | | NULL | |
| hour_end | varchar(10) | NO | | NULL | |
+------------+---------------------+------+-----+---------+-------+
数据示例如下:
+---------+----------+------------+------------+
| user_id | week_day | hour_start | hour_end |
+---------+----------+------------+------------+
| 10 | 0 | 08:00 a.m. | 10:00 a.m |
| 10 | 0 | 02:00 p.m. | 04:00 p.m. |
| 10 | 1 | 10:00 p.m. | 11:00 p.m. |
| 10 | 2 | 09:00 a.m. | 12:00 a.m. |
| 10 | 3 | 03:00 p.m. | 05:00 p.m. |
| 10 | 4 | 10:00 a.m. | 12:00 a.m. |
| 10 | 5 | 12:30 a.m. | 02:00 p.m. |
| 10 | 6 | 12:30 a.m. | 02:00 p.m. |
+---------+----------+------------+------------+
如您所见,对于周日=0(周一),保姆有两个时间段。我的问题是:
1) 有没有更好的方法来存储这些信息?
2) 小时开始和小时结束列的var_char(10)格式正确吗?
3) 如果我添加一个ID主列(我认为我永远不会查询该列),会有什么好处吗?
4) 如果我将周日、小时开始、小时结束列的所有数据存储在一个序列化数组中是否更好?您的问题:
hour_start和hour_end应该是timestamp数据类型或float number,以便更容易查询。hour_start和hour_end也可以是从午夜开始的秒或分钟的整数。按照惯例,周一是第一天,周日可以是第0天或第7天。是的。不,不,不,穆尔?呃?????????