我正在研究预订系统架构,并且在定义资源可用性方面存在一些问题 . 我在这里和谷歌搜索了类似的问题,但仍然没有清楚的理解
我的应用程序是预订出租车 . 每个出租车司机今天要么工作,要么休息一天 . 到目前为止,我已经提出了以下结构
table: Drivers
id INT PRIMARY KEY
name INT
table: Users
id INT PRIMARY KEY
name TEXT
table: Reservations
id INT PRIMARY KEY
start: DATETIME
end: DATETIME
userID: INT (FOREIGN KEY(Users.id))
driverID: INT (FOREIGN KEY(Drivers.id))
如果没有预订条目,我想考虑将每个司机视为可用,然后提出不同类型的预订:
不可用=>司机休息一天预订=>驾驶员在开始/结束时间之间由用户预订取消=>取消预订
但是,保持不可用/预订状态听起来比我想要的复杂一点 .
那么,有什么建议如何改进数据库架构?
1 回答
更简单的方法是避免驱动程序可用性(因为他关闭/出租车正在修复)是在Drivers表中添加一个布尔属性,可以从UI打开或关闭 .
并且预订应该具有取消的属性,以便在查询可用的驱动程序时取消预订可以被忽略 .
所以可用的驱动程序是