【发布时间】:2019-04-12 14:24:12
【问题描述】:
我有一个允许会员租用设备的系统,并且该系统应该有每个租用物品和租用者的历史记录。系统还应该跟踪谁有哪些设备租用/签出,还应该按类型、状态、名称等对设备进行分类。最后它还应该发送过期设备的通知电子邮件。
我正在尝试了解这些关系以及我应该如何建模。截至目前,我目前的表格和想法是这样的:
Member Table:
Id (PK)
MemberId
FirstName
LastName
Email
EquipmentItem Table:
Id (PK)
EquipmentName
EquipmentType (FK)
EquipmentStatus (FK)
TotalQuantity
RemainingQuantity
EquipmentStatus Table:
Id (PK)
StatusName
EquipmentType Table:
Id (PK)
TypeName
EquipmentRentalHistory Table:
Id (PK)
MemberId (FK)
EquipmentId (FK)
CheckOutDate
ReturnedDate
1) 我想知道这些之间的关系,租赁历史是否是 Member 表和 EquipmentItem 表之间的多对多关系?
2) EquipmentItem 表的状态和类型之间是否存在一对多关系,我认为 EquipmentItems 可以有多种状态或类型,但每个状态或每种类型只能属于一个 EquipmentItem。
3) 在 EquipmentItem 中有一个数量字段是否有意义,我曾经在杂货店工作,所以我将逻辑基于相同产品通常具有相同条形码的条形码,例如(Cheetos Puff 薯片)所有 Cheetos Puff 薯片都有相同的条形码,但上面会有数量值。还是让每件商品都独一无二,无论它是否是相同的产品/型号会更好?
我的逻辑是:
- 会员出租物品
- 系统将其记录到历史记录表中
- 然后系统会检查到目前为止已签出多少相同项目,如果说我们该项目的总数量为 4 并且 3 个成员已签出
- 我们将剩余数量字段更新为差异,因此在本例中为 1
- 然后系统可以通过返回所有返回日期为 null 的记录来跟踪谁签出了哪些内容
- 然后系统将检查所有返回日期为空的记录,然后在签出日期进行日期范围以确定设备是否过期
- 向与步骤 6 中所述记录关联的成员电子邮件发送通知
我希望得到一些帮助,以更好地理解它们之间的关系,如果我的表格建模正确,如果没有,如果有人能指出我改进这一点的正确方向,那就太好了。
【问题讨论】:
标签: sql-server database data-modeling