产品分类数据库设计
产品分类数据库表设计文档 北京联动北方科技有限公司 2012 年 3 月 7 日 系统数据库设计 所作修改已用红色部分标出 一.系统 ER 图 1-1 分析 实体集公司、产品、组件、产品类别 联系 生产描述公司和产品之间的关系,是一种多对多的关系。一个公司可以生产多种产品, 一个产品也可能有多个公司生产。 组成描述产品与组件之间的关系,是一种多对多的关系,一个产品由多个组件组成,一 个组件也可能出现在多个产品中。 兼容描述各个公司产品之间的兼容性,是一种多对多的关系,一个产品可以与多个产品 兼容。 拥有描述公司和产品类别之间的关系,是一种多对多的关系。一个公司可以拥有很多类 别的产品,一个产品类别里面也可以包含很多公司的产品。 包含描述产品类别和产品之间的关系,是一对多的关系。一个产品类别里面可以包含多 个产品,但一个产品只能属于一个产品类别。 1-2 处理 1. 公司这个实体可以独立作为一个关系,建立一张表公司(公司编号,名称,描述) 2. 产品这个实体可以独立作为一个关系,建立一张表 (产品编号,名称,类别,版本,描 述) 3. 组件这个实体可以作为一个独立的关系,建立一张组件表 (组件编号,名称,描述) 4. 生产联系转变成一个关系生产表,记录不同公司生产的不同产品。生产表 生产(公司 编号,产品编号) 5. 组成联系转变成一个关系 组成表, 记录产品和组件之间的关系。 产品组成表 组成 (组 件编号,产品编号) 6. 兼容联系转变成一个关系,是产品到产品的一个自身映射问题,记录产品与产品之间的 兼容性信息。兼容表兼容(产品 1 编号,产品 2 编号) 7.产品类别这个实体可以独立作为一个关系,建立一张表产品列表(编号,名称,描述) 8.拥有联系转变成一个关系拥有表,记录公司和产品类别之间的关系。拥有表 (公司编号, 产品类别编号) 9.包含联系转变成一个关系,是产品类别和产品之间的关系。建立一张表包含表(产品类 别编号,产品编号) 二、数据表 1. 公司表(company) 主要用来记录公司信息。 字段 字段名称 数据类型 可否为空 备注 compa_id 公司编号 varchar(10) 不允许为空 主键 compa_name 公司名称 varchar(50) 不允许为空 compa_desc 公司描述 varchar(2000) 允许为空 create table companycompa_id varchar10 not null, compa_name varchar50 not null, compa_desc varchar2000, PRIMARY KEYcompa_id 2. 产品表(product) 主要用来存储产品信息,方便用户查询。 字段 字段名称 数据类型 可否为空 备注 prod_id 产品编号 varchar10 不允许为空 主键 prod_name 产品名称 varchar50 不允许为空 prod_desc 产品描述 varchar2000 允许为空 prod_vers 产品版本 varchar10 不允许为空 create table productprod_id varchar10 not null, prod_name varchar50 not null, prod_desc varchar2000, prod_vers varchar10 not null, PRIMARY KEYprod_id 3. 组件表(component) 主要用来存放组件信息。 字段 字段名称 数据类型 可否为空 备注 compo_id 组件编号 varchar10 不允许为空 主键 compo_name 组件名称 varchar50 不允许为空 compo_desc 组件描述 varchar2000 允许为空 create table componentcompo_id varchar10 not null, compo_name varchar50 not null, compo_desc varchar10, PRIMARY KEYcompo_id 4. 生产表(production) 主要用来存放不同公司生产不同产品信息。 字段 字段名称 数据类型 可否为空 备注 compa_id 公司编号 varchar10 不允许为空 外键 (作为主键) prod_id 产品编号 varchar10 不允许为空 外键 (作为主键) create table productioncompa_id varchar10 not null, prod_id varchar10not null, PRIMARY KEYcompa_id,prod_id, FOREIGN KEYcompa_id REFERENCES company compa_id, FOREIGN KEYprod_id REFERENCES product prod_id 5. 组成表makeup 主要用来存放组件和产品之间的组成信息。 字段 字段名称 数据类型 可否为空 备注 prod_id 产品编号 varchar10 不允许为空 外键 (作为主键) compo_id 组件编号 varchar10 不允许为空 外键 (作为主键) create table makeup prod_id varchar10 not null, compo_id varchar10not null, PRIMARY KEYprod_id,compo_id, FOREIGN KEYprod_id REFERENCES product prod_id, FOREIGN KEYcompo_id REFERENCES component compo_id 6. 版本兼容表(compatibility) 主要用来存储各种产品之间的兼容性信息。 字段 字段名称 数据类型 可否为空 备注 prod1_id 产品 1 编号 varchar10 不允许为空 外键 (作为主键) prod2_id 产品 2 编号 varchar10 不允许为空 外键 (作为主键) create table compatibility prod1_id varchar10 not null, prod2_id varchar10not null, PRIMARY KEYprod1_id,prod2_id, FOREIGN KEYprod1_id REFERENCES product prod_id, FOREIGN KEYprod2_id REFERENCES product prod_id 7. 产品类别表(category) 主要用来存储产品类别信息。 字段 字段名称 数据类型 是否为空 备注 categ_id 产品类别编号 varchar10 不允许为空 主键 cat