数据库设计中的多对多关系

S.C*_*.C. 5 sql database-design many-to-many

我正在构建一个利用大量多对多关系的数据库.例如,我有零件和机器项目,每个零件进入许多机器,每台机器有很多零件.此数据库的目的是能够输入部件列表并返回仅由该列表中的部件组成的机器列表,反之亦然.我是数据库设计的新手,所以我目前一直在用转换表建模这种关系,比如:

创建表机器(machine_id号,machine_name char(30))

create table part(part_id number,part_name char(30))

创建表关系(part_id号,machine_id号)

这似乎是一种非常丑陋和天真的方式来建模这种关系.有没有更好的方法来做到这一点,比如以某种方式在各自的表下的单列中存储和更新列表或者我还没想过的更好的东西?我正在尝试找到一种方法来最大限度地减少查询时间和后处理强度.

谢谢.

niz*_*mow 8

欢迎来到关系数据库.不,没有更好的方法.我建议稍微更好地命名你的桌子; Machine,Part,Machine_Part或类似的东西,因为你可能会最终得到一堆这类表.

后期处理实际上不是问题,使用SQL中的简单INNER JOIN或使用ORM来处理这些关系相当容易.数据库旨在应对这种东西.