例如在订单表( orders ),里面有
- 客户
- 商家
- 订单订阅者(subscriber,可以是会计,可以是库存管理员)
他们都是 users 表里的用户
关系需求:
- 一个客户有多个订单( 1:n )
- 一个商家有多个订单( 1:n )
- 每个订单有多个订单订阅者( n:n )
- 查询客户和商家的次数多余订单订阅者的次数
但在数据库设计的时候技术部老大和我说只要有一个关系 就是 users 和 orders 是多对多关系。也就是说我在查询订单的唯一客户或者商家的时候还要跑去多对多的中间表格( pivot table )查,我知道技术上可行,但查询复杂度增大,性能降低, 这合理?
orders 和 users 同时存在 1:n 和 n:n 关系很正常呀,老大说就只要 n:n, 我不服,在和他辩论中。我还是觉得要同时存在多种关系, 我错了?不对吧,这是数据库设计很基本的要求呀。