应用中场地与类型的关联关系选型咨询:单场地对应唯一类型
你忽略的核心:一对多关系的方向!
你纠结的点其实是把一对多的方向搞反啦~ 咱们理清楚逻辑:
- 从场地(Venue)的视角看:单个场地只对应一个类型,这是「多对一」(多个场地对应同一个类型)
- 从类型(Type)的视角看:单个类型可以对应多个场地,这就是标准的「一对多」关系
举个简单的数据库设计例子就能明白:
types表:存储类型基础信息,比如id、name(bar/cafe/restaurant等)venues表:存储场地信息,除了自身的名称、地址等字段,新增一个type_id外键,关联types表的id字段
这样的设计完全贴合你的业务需求:
- 每个场地只能关联一个类型(
type_id为单个值,保证唯一性) - 同一个类型可以被多个场地关联(多个
venues的type_id可以指向同一个types.id)
你之前觉得「一对多不合适」,大概率是误以为一对多是一个场地对应多个类型,但其实一对多的方向是可以灵活定义的,只要把类型作为「一」的一端,场地作为「多」的一端,就完美匹配你的场景了。
内容的提问来源于stack exchange,提问作者JaChNo
相关产品推荐
相关产品推荐

