mysql - 解决数据库设计中的一对一问题
问题描述
对不起,如果这很明显,但我是数据库设计的新手。
客户必须在租用物品之前进行预订,他会预先提供详细信息,例如预订日期、物品类型等。员工在允许客户租用之前检查物品是否可用。如果可用,他将项目 ID、租赁日期、归还日期等输入系统。
我为此创建两个表是否正确?一份用于预订(包括建议的租赁信息。)和一份用于租赁(包括实际租赁信息)。如果是这样,这些不是一对一的关系吗?我怎样才能解决这种一对一的关系?我应该合并这两个表吗?
解决方案
首先,由于预订可能永远不会以出租形式实现,因此这种关系不完全是 1:1 而是 1:(0-1)。
我认为将它们建模为单独的实体是正确的,因为:
- 它们可能有不同的“生命周期”。
- 它们很可能具有不同的属性。
- 与预订相比,租金可能与许多其他实体相关。这些 FK 对出租有意义,但对预订没有意义。
推荐阅读
- templates - 从哪里获得 OpenShift 模板“语言”的参考?
- apache-karaf - 当 loginModule jar 在部署文件夹中时,Karaf Jaas 与自定义 LoginModule 结合不起作用
- android - 活动在后台时如何处理位图?
- spring-boot - io.undertow.servlet.util.IteratorEnumeration 不能转换为 java.lang.String
- git - Git硬重置不会恢复本地文件
- angular - AngularCompilerPlugin 与多个 node_modules 文件夹
- python - 如果熊猫行发现不止一个并且删除最新的,则条件为 True
- c# - 有没有办法以编程方式强制 Windows 搜索新的 WiFi nextworks?
- android - onConfigureFailed: android.hardware.camera2.impl.CameraCaptureSessionImpl@1bceb33
- typescript - 在打字稿中获取子类的返回类型