数据库设计讨论(兼散分谢谢CSDN上的朋友二年来的帮助)

jonescheng 2003-09-03 04:07:35
朋友的一个公司是一个外贸公司。要想做一个样品管理系统
但是他做的东西太多太杂了。下面是公司的分类:
一、玩具类
1.毛绒玩具2.益智玩具 3.模型玩具 4.塑料玩具5.玩具配件6.木刷玩具7.充气玩具8.电具玩具9.电子玩具10.其它
2.
二、电子类
1.电池2.复读机3. 点钞机4.剃须刀 5. 打火机6. 钟表达式 7. 耳机.耳塞8.天线及放大器 9. 电子记事本10.门铃.防盗器 11. 稳压

器.充电器

三、电器类
1.VCD 2. DVD 3.热水器 4.饮水机 5.油烟机 6.燃气具 7.电熨斗 8.吹风机 9.电视机型10. 风扇,排气扇
.........................
七. 紡染
1.帽子
<1. 草帽 <2.牛仔帽 <3.休閒帽 <4.兒童帽 <5. 遮陽帽 <6. 嬰兒帽 <7.針織帽 <8.棒球帽 <9. 圓編帽 <10. 廣告帽 <11.特殊造型 <12.頭

巾海盜帽 <13.女性時裝帽
2.围巾
<1. 手勾圍巾 <2. 毛絨圍巾 <3. 皮草圍巾 <4. 兒童圍巾 <5. 梭織圍巾 <6. 提花圍巾 <7. 圓機圍巾 <8. 經編圍巾 <9. 橫機圍巾 <10. 其

他圍巾
3.手套
<1. 皮手套 <2. 滑雪手套 <3. 工作手套 <4. 毛線手套 <5. 布質手套 <6. 兒童手套 <7. 嬰兒手套 <8. 高爾夫手套 <9.其它
4.手帕
5.圍巾
6.襪子
7.冬季帽
<1.皮草 <2.附耳 <3.休閒帽 <4.針織帽 <5.圓編帽 <6.嬰兒毛線 <7.兒童毛線 <8.特殊造型 <9.圓機毛線 <10.提花毛線 <11.橫機毛線 <12.

女性時裝帽 <13.其他
8.秋冬配件
<1.耳罩 <2.絲巾 <3.新資料夾 <4.新資料夾 <5.保暖套組 <6.其他
...................
共15个分类,其中一些省略了。。。

产品的编号是有电脑自动编号的。比如棒球帽子070108001。070108是因为棒球帽属于第七类纺杂(序号是07)然后01是纺杂里第一类(01)帽

子。08是帽子里的第八类(序列号)是棒球帽。。最后三位001是产品的流水号.
所以我的想法是在界面的左边以树型列出所有产品分类。然后选择好了再生产流水号。最后组成产品编号。

下面是需求:
产品要有:产品编号,产品名称,产品所属分类,产品自重,产品价格(含税或不含税),外箱尺寸(长和宽和高),箱体积,每箱装产品数

目,箱重,颜色和花案,材质,产品适用年龄,产品适用性别,现货或库存或订货,产品计量单位,供应商。
供应商:供应商编号,供应商简称,厂家或非厂家,联系人,电话,传真,地址。

一个产品可能会有多个供应商,而且各个供应商的价格可能不一样。
多个供应商可能会提供不同的外箱尺寸和箱重。
多个供应商可能会提供不同的供货方式(现货或者库存或者订货)
有些产品可能会出现:比如帽子同一款会有多个尺寸,同一款帽子可能会有不同的颜色.

查询要求:
能查询指定分类下所有的产品。
能查询指定分类下约定价格的产品
能查询所有能提供指定产品的供应商
.....

我的设计如下
产品表(产品编号,流水号,产品分类,产品名称,备注)
产品描述(产品编号,材质,产品适用年龄,产品适用性别,颜色和花案)
产品规格(产品编号,产品计量单位,产品重量,产品箱装尺寸(长,宽,高),箱装体积,箱重)。
价格表(产品编号,供应商编号,价格,供货方式)
供应商表(供应商编号,供应商简称,联系人,电话,地址,传真,是否厂家)。


有以下难点希望大家帮忙
一是分类表该如何存入,有人给我一份贴子。是蚂蚁兄(高手)的。可惜我看不大明白。。。
也觉得太复杂了。。。他把所有的分类全放在一张表中。。。
有没有其它的方法呢?因为我是要从中取编号的。。
二就是自动生成序号。我在产品表中存了一张流水号字段。这样当增加产品时我就从查询该分类产品的流水号
取出最大的然后加一做为新增产品的流水号。不知道该方法可行否。当多用户同时输入时是否会造成流水号
重复而使出现相同编号。。。。。。
欢迎大家发言。。。。。。只能发一百分。本来准备发二百分。但是不行。第一次发二百分的时候,好惨阿。打完了。点提交后
提示分数错误。结果什么都没有了。现在又重打一份。5555。好惨
...全文
25 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
bitfubin 2003-09-06
  • 打赏
  • 举报
回复
1: 建一个分类表 (跟会计科目一样建成树状的)
类ID,类说明,父类ID

2:当然可以。
jonescheng 2003-09-06
  • 打赏
  • 举报
回复
呵呵。不好意思。主要是怕大家看不懂。所以
写的多了点。我觉得太繁琐了点。可是语言表达
能力太差了。没有办法
jonescheng 2003-09-06
  • 打赏
  • 举报
回复
谢谢大家的帮助。就此结贴
w_rose 2003-09-05
  • 打赏
  • 举报
回复
如果“流水号”是主键,也可以使用客户端程序处理编号冲突问题,也就是在编号冲突时(服务器提示出错时)再次(可以由用户操作再次)提交资料,这时客户端程序重新编了新的流水号。
w_rose 2003-09-05
  • 打赏
  • 举报
回复
你的叙述太繁琐(呵呵),问题太大,没有仔细看。仅根据经验直接回答你的问题,你自判断是否实用吧!

1. 你的分类中,只有大、中、小三个层次。在“产品表”中定义这三个字段即可。如果需要校验输入的分类名称,可以建立分类表并在产品表中建立三个外键分别关联,否则不需要。

2. 增加流水号与保存“产品表”记录放在一个事务中,就不可能造成“流水号冲突”的问题。例如,你的流水号是由“产品表”的“instead of insert”触发器完成的,或者是在查询最大流水号之前发送begin tran命令,在保存完产品记录后发送commit tran命令,那么(由于事务的原子性)就不会有其它用户的同样操作与之冲突。
jonescheng 2003-09-05
  • 打赏
  • 举报
回复
我现在想到很好解决办法了,呵呵
谢谢大家帮助。明天下午结贴
分不多。希望大家别介意
karach 2003-09-05
  • 打赏
  • 举报
回复
确实比较恐怖!
xiaodian2003 2003-09-05
  • 打赏
  • 举报
回复
产品编号(主键) 产品名称 父接点 属性1 属性2 属性3 属性4 。。。。。更多
1 灯 0 价格 功耗 产地 数量
2 节能灯 1 价格 功耗 产地 技术 类型
3 台灯 1 。。。。
4 。。 0 。。。。 。。。。 。。。
5 。。。。 4 。。。。 。。。。 。。。 。。。 。。。
6 。。。 4 。。。 。。。 。。。 。。 。。
7 。。。 4 。。 。。。 。。。。 。。。 。。。
8 。。。 0 。。。 。。。 。。。。。 。。。
9 。。。。 8 。。。。。。。
10 。。。。。 8 。。 。。。 。。。。 。。。。

ID(主键) 产品编号 字段名 属性值
1 1 属性1 价格
2 1 属性2 功耗
3 1 属性3 产地
4 1 属性4 数量
5 1 属性5 。。
6 1 属性6 。。
7 1 属性7 。。
8 1 属性8 。。
9 1 属性9 。。
10 1 属性10 。。
这样不知道是不是你想要得。。
litf 2003-09-05
  • 打赏
  • 举报
回复
UP,向大家学习
goneaway 2003-09-05
  • 打赏
  • 举报
回复
支持一下,up
CSDNM 2003-09-04
  • 打赏
  • 举报
回复
你的分类编号比较规范,变化不大,可以不必采用蚂蚁的设计,蚂蚁的设计适用灵活性要求高的,可以完全靠编码识别分类,也可以加多几个冗余字段,分别表示一级分类代码、二级分类代码、三级分类代码

jonescheng 2003-09-04
  • 打赏
  • 举报
回复
谁能说一下具体怎么建个类阿。。。
谢谢阿!!各位大侠们都谈一下阿
subscribe 2003-09-04
  • 打赏
  • 举报
回复
gz
nobelpu 2003-09-04
  • 打赏
  • 举报
回复
做个树状的分类别,不就行了吗。
Sorder 2003-09-04
  • 打赏
  • 举报
回复
产品分类管理
物资编号最好比较有意义,比如玩具类物资编号:WJ00001,WJ00002....
jonescheng 2003-09-04
  • 打赏
  • 举报
回复
那么请问在产品表中怎么引用分类表呢?是用ID。
还是直接在产品表中存放分类呢
liuyun2003 2003-09-03
  • 打赏
  • 举报
回复
1我感觉建三个表没有表要啊。这样建立一个类表就可以了。
类ID,类等级,类名,父类ID
使用类等级和类ID做主键。这样你的类的编码就可以做到直接使用了。
2这个处理很好的。不过一定要注意,读出来要加锁,等到你这个记录添加完成在开锁。
frogshero 2003-09-03
  • 打赏
  • 举报
回复
學習
jonescheng 2003-09-03
  • 打赏
  • 举报
回复
但是生成序列号后。但是产品资料都还没有填写完整
如果这里取消操作的话。那这个流水号就算空出来了
wuyanfeng 2003-09-03
  • 打赏
  • 举报
回复
问题2:自动生成序号,采用事务;取序号时,将记录锁定,生成新序号后,写入后在开锁。事务的操作要短,不能中间有人机对话界面。
3。流水编号要设置为表中的唯一主键,这样可以避免误操作产成的重复。
另一种思路:如果操作人员固定,可以建一个专门生成编号的表,字段为:[操作人员编号],[生成编号],[编号前缀]。一个操作人员一条记录,每个操作人员在自己的记录上递增编号。通过前缀区分不同操作人员产生的编号。

加载更多回复(5)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧