(1) 项目对应于一张项目总图,还包括项目名和负责人等属性。根据自顶向下设计原则,项目可以分为部件零件,其中部件可以由下层部件和零件组成。从这个意义上说,一个项目就是一棵树,如图1所示。

(2) 图纸是一个项目的具体体现。是设计人员对这个项目的具体描述,包括总图、部件图、零件图等。
(3) 零部件是现实世界的具体存在事物,有可能是设计部门需要设计的,也有可能是设计部门拿来就可以用的基础。
(4) 人员是对参与某个项目人员的描述。
根据以上的描述,设计出如下的数据库结构(见表1~表5) :


根据表5 可以生成需要的树形结构,并且同时得出这个项目所需要的所有材料,也就是物料清单BOM。详细分析如下:
(1) 对任何一张图纸drawing ID ,如果它的parent drawing ID 为NULL ,则它就是总图。
(2) 对任何一张图纸drawing ID ,如果它的parent drawing ID不为NULL,则可以根据parent - drawing ID 找到它的兄弟节点。
(3) 对任何一张图纸drawing ID ,寻找字节点的过程,就是编历表的过程,如果某个drawing ID 的parent drawing ID 是前面那一张图纸的drawing ID ,则找到的图纸就是前面那张图纸的子节点。
(4) 分别用0、1 和2 来代表总图、部件图和零件图。在构造项目树的过程中,如果type 是0 或者1 ,则必须继续寻找此节点子节点;如果type 是2 ,则不再在此节点寻找子节点。
(5)根据数据库构造树型结构的过程,同时也是生成BOM的过程。根据每一个叶子节点的drawing ID ,然后结合tblaccessory Draw 和tbl Accessory ,可以很容易地生成BOM,这样即生成了EBOM,也就是工程设计物料清单。
4 结语
讨论了PDM和BOM的原理和构成,并且根据这一原理,结合实际的工作,设计了用于管理AutoCAD 图纸的PDM 系统,详细分析了此系统的BOM部分的设计过程。虽然根据以上的分析,一个完整的BOM 应该包括EBOM、PBOM、MBOM 和CBOM 等几个不同阶段的BOM。但对我国的部分小型CAD设计部门来说,一个小型的仅拥有一个EBOM视图的PDM系统已经足够,并不需要更多的BOM 视图就可以完成工程。因此,这个系统并没有涉及到更多的BOM视图。不同的BOM视图之间还有一个相互转换的问题,对此必须站在部门的角度,从单一产品数据源出发来配置BOM 的功能,否则,很可能造成不同部门的物料清单的不一致。因此,有关BOM在更加复杂环境中的应用还有待进一步地探讨。