多对多关系的处理
在数据库设计的过程中,经常会遇到两张表是多对多的关系.
如订单和商品之间的关系:一个订单包含了很多商品,而一种商品同时也可能属于多个订单.
这时就需要通过建立一个第三方关联表,将多对多关系拆分成两个一对多关系.其中关联表为多方.
实例如下:
背景
- 一种菜品属于一个菜系,一个菜系也包括很多菜品;
- 一种菜品根据原材料分可以分为多个种类,如番茄炒蛋可以归为蛋类也可归为蔬菜类,而每个种类下也有多个菜品
- 通过建立菜系-菜品关联表,种类-菜品关联表来处理菜品与菜系,菜品与种类之间的多对多关系
- 数据表名词解释:
- food:菜品
- foodstyle:菜系
- foodtype:种类
- stylelink:菜系-菜品关联表
- typelink:种类-菜品关联表
对应的ER图如下: