首页 > 解决方案 > 解决数据库设计中的一对一问题

问题描述

对不起,如果这很明显,但我是数据库设计的新手。

客户必须在租用物品之前进行预订,他会预先提供详细信息,例如预订日期、物品类型等。员工在允许客户租用之前检查物品是否可用。如果可用,他将项目 ID、租赁日期、归还日期等输入系统。

我为此创建两个表是否正确?一份用于预订(包括建议的租赁信息。)和一份用于租赁(包括实际租赁信息)。如果是这样,这些不是一对一的关系吗?我怎样才能解决这种一对一的关系?我应该合并这两个表吗?

标签: mysqlsqldatabasedatabase-designerd

解决方案


首先,由于预订可能永远不会以出租形式实现,因此这种关系不完全是 1:1 而是 1:(0-1)。

我认为将它们建模为单独的实体是正确的,因为:

  • 它们可能有不同的“生命周期”。
  • 它们很可能具有不同的属性。
  • 与预订相比,租金可能与许多其他实体相关。这些 FK 对出租有意义,但对预订没有意义。

推荐阅读