我想知道,比如库存表,是存放商品编码呢,还是存 商品编码+商品名称?
如果商品再有分类呢?大类小类什么的,再加上品牌型号?是不是只存放
编码呢?如果是这样,我怎么同时从库存表中查出单价和从分类表中查出
品牌?谁能给写个sql码?
解决方案 »
- IOCP-UDP中发送投递使用WSASendTo总是不成功,谁给个好的代码。
- 不通过外部参数,在类内部获得实例的问题
- 在delphi中如何获得excel的行数和列数
- 在ADOQuery1.sql.add(str1)的str中的單引號,#號和括號要怎樣注意細節?
- 简单的SQL语句,大家来帮帮忙
- ocx问题?
- 在线等候
- 我想写一个过程,传入文件名,然后把文件用二进制方式读取传出,应该怎么做呢?
- 关于注册表的问题,快急死了.
- 请问如何在比如ListBox之类的控件中加入字符串类型的object
- String literals may have at most 255 elements 何解???
- 问一个SQL语句怎么写
然后再加上产品的分类(类别代码,类别名称)bb表还有你的库存表cc(商品代码,数量...)aa的商品分类编码和bb的分类编码相关联
aa的商品编码和cc的商品编码关联
构造数据库必须遵循一定的规则在关系数据库中这种规则就是范式范式是符合
某一种级别的关系模式的集合关系数据库中的关系必须满足一定的要求即满足不同的
范式目前关系数据库有六种范式第一范式1NF 第二范式2NF 第三范式3NF
第四范式4NF 第五范式5NF 和第六范式6NF 满足最低要求的范式是第一
范式1NF 在第一范式的基础上进一步满足更多要求的称为第二范式2NF 其余
范式以次类推一般说来数据库只需满足第三范式3NF 就行了下面我们举例介绍
第一范式1NF 第二范式2NF 和第三范式3NF
第一范式1NF
在任何一个关系数据库中第一范式1NF 是对关系模式的基本要求不满足第一
范式1NF 的数据库就不是关系数据库
所谓第一范式1NF 是指数据库表的每一列都是不可分割的基本数据项同一列中
不能有多个值即实体中的某个属性不能有多个值或者不能有重复的属性如果出现重复
的属性就可能需要定义一个新的实体新的实体由重复的属性构成新实体与原实体之
间为一对多关系在第一范式1NF 中表的每一行只包含一个实例的信息例如对
于图3-2 中的员工信息表不能将员工信息都放在一列中显示也不能将其中的两列或多
列在一列中显示员工信息表的每一行只表示一个员工的信息一个员工的信息在表中只
出现一次简而言之第一范式就是无重复的列
第二范式2NF
第二范式2NF 是在第一范式1NF 的基础上建立起来的即满足第二范式2NF
必须先满足第一范式1NF 第二范式2NF 要求数据库表中的每个实例或行必须可
以被惟一地区分为实现区分通常需要为表加上一个列以存储各个实例的惟一标识如
图3-2 员工信息表中加上了员工编号emp_id 列因为每个员工的员工编号是惟一的
因此每个员工可以被惟一区分这个惟一属性列被称为主关键字或主键主码
第二范式2NF 要求实体的属性完全依赖于主关键字所谓完全依赖是指不能存在
仅依赖主关键字一部分的属性如果存在那么这个属性和主关键字的这一部分应该分离
出来形成一个新的实体新实体与原实体之间是一对多的关系为实现区分通常需要为表
加上一个列以存储各个实例的惟一标识简而言之第二范式就是非主属性非部分依赖
于主关键字
第三范式3NF
满足第三范式3NF 必须先满足第二范式2NF 简而言之第三范式3NF
要求一个数据库表中不包含已在其它表中已包含的非主关键字信息例如存在一个部门
信息表其中每个部门有部门编号dept_id 部门名称部门简介等信息那么在图3-2
的员工信息表中列出部门编号后就不能再将部门名称部门简介等与部门有关的信息再加
入员工信息表中如果不存在部门信息表则根据第三范式3NF 也应该构建它否则
就会有大量的数据冗余简而言之第三范式就是属性不依赖于其它非主属性
品牌编号,品牌名称 分类表结构:
分类编号,从属类编号,品牌编号 产品表结构:
商品编号,产品名称,分类编号,单价 库存表结构:
商品编号,分类编号,单价,数量
select d.品牌名称,d.分类名称,b.产品名称,b.单价,a.数量
from 库存表 a,产品表 b,分类表 c,品牌表 d
where a.产品编号=b.产品编号
and b.分类编号=c.分类编号
and c.品牌编号=d.品牌编号 如果你要显示大类小类等等那就麻烦写,最好在delphi里写