| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 492 人关注过本帖
标题:关于建库的问题
只看楼主 加入收藏
scindy
Rank: 1
等 级:新手上路
威 望:1
帖 子:591
专家分:4
注 册:2006-10-23
结帖率:50%
收藏
 问题点数:0 回复次数:6 
关于建库的问题
我建了一个数据库,里边的商品分为好多大项和一些小项,我不知道怎么安排这个数据库了.比如
单反数码相机▼
佳能相机
佳能专用
佳能家用
索尼相机
索尼专用
索尼家用
民用数码相机▼
...
2006-10-30 11:45
scindy
Rank: 1
等 级:新手上路
威 望:1
帖 子:591
专家分:4
注 册:2006-10-23
收藏
得分:0 
怎么没有人回啊?兄弟我还在这边等着呢,着急啊!!

淘宝新到货: http://shop36082390. 电脑及配件/杀毒U盘/移动硬盘/减肥产品/切苹果器/剥蒜器/个性烟灰缸/装饰彩灯/雨伞/女包//手机座/极品铁观间茶叶/五层布衣柜/三洋/日立投影机
QQ:410243392 (常用)
2006-10-30 12:00
李彬
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2006-10-13
收藏
得分:0 
如果小项目多,可以把每个大项单独建个表!

命運\無法改變,可以改變的是我們對命運\的態度!
2006-10-30 13:06
luoshun
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2005-11-17
收藏
得分:0 
我觉得为了扩展的,还是分细点的好
2006-10-30 14:53
scindy
Rank: 1
等 级:新手上路
威 望:1
帖 子:591
专家分:4
注 册:2006-10-23
收藏
得分:0 
对,还得扩展,怎么分细点啊?

淘宝新到货: http://shop36082390. 电脑及配件/杀毒U盘/移动硬盘/减肥产品/切苹果器/剥蒜器/个性烟灰缸/装饰彩灯/雨伞/女包//手机座/极品铁观间茶叶/五层布衣柜/三洋/日立投影机
QQ:410243392 (常用)
2006-10-30 14:59
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
单反数码相机▼
民用数码相机▼ //这样的是大表,

佳能相机
索尼相机 //这样的是中表,

佳能专用
佳能家用
索尼专用
索尼家用 //这样的是小表.

再建立它们的关系就行了.

飘过~~
2006-10-30 20:25
ming206
Rank: 2
来 自:重庆
等 级:等待验证会员
威 望:3
帖 子:545
专家分:7
注 册:2005-8-2
收藏
得分:0 

详细具体的如下。随便用点时候弄了哈哈

--最大表
CREATE TABLE [dbo].[TABLE1] (
[ID1] [int] IDENTITY (1, 1) NOT NULL ,
[Name1] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO

--中表,外键为最大表的主键

CREATE TABLE [dbo].[TABLE2] (
[ID2] [int] IDENTITY (1, 1) NOT NULL ,
[ID1] [int] NULL ,
[Name2] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO

--小表,外键为中表的关键

CREATE TABLE [dbo].[TABLE3] (
[ID3] [int] IDENTITY (1, 1) NOT NULL ,
[ID2] [int] NULL ,
[Name3] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO

--插入表1记录,插入记录时要触发一个事件将ID1插入表中
INSERT INTO TABLE1(Name1)values('单反数码相机')
go
INSERT INTO TABLE1(Name1)values('民用数码相机')
GO
INSERT INTO TABLE1(Name1)values('其他的类别相机')
GO
--等等,可以添加任意个,NAME1不重复记录
--测试查询

SELECT * FROM TABLE1

--插入表2记录
--注意这里的ID1必须和表一符合。例如ID1=SELECT ID1 FROM TABLE1 WHERE NAME1='单反数码相机'
--ID1在表2中是外键
INSERT INTO TABLE2(ID1,Name2)values(36,'佳能相机')
INSERT INTO TABLE2(ID1,Name2)values(37,'索尼相机')
INSERT INTO TABLE2(ID1,Name2)values(38,'其他的类别相机子类别1')
INSERT INTO TABLE2(ID1,Name2)values(38,'其他的类别相机子类别2')
--等等,可以添加任意个,NAME2不重复记录

--测试查询
select * from TABLE2--所有
--复合查询查询
select id2,ID1,NAME2 FROM TABLE2 T2
where T2.ID1 IN(SELECT ID1 FROM TABLE1 WHERE NAME1='单反数码相机')

select id2,ID1,NAME2 FROM TABLE2 T2
where T2.ID1 IN(SELECT ID1 FROM TABLE1 WHERE NAME1='民用数码相机')

select id2,ID1,NAME2 FROM TABLE2 T2
where T2.ID1 IN(SELECT ID1 FROM TABLE1 WHERE NAME1='其他的类别相机')

--插入第三个表,同样将ID2作为表中的外键,在TABLE2中必须存在,否则数据库不完整
INSERT INTO TABLE3(ID2,Name3)values(16,'佳能专用')
INSERT INTO TABLE3(ID2,Name3)values(16,'佳能家用')
--插入其他
select * from TABLE3--所有

--复合查询查询,某个子类下的所有
select * from TABLE3
where id2 in(
select id2
from table2
where id1 in(
select id1 from table1 where Name1='单反数码相机'
)
)
--单条记录
select * from TABLE3
where id2 in(
select id2
from table2
where id1 in(
select id1 from table1 where Name1='单反数码相机'
)
)
and id3=1
/*
delete from table1
delete from table2
delete from table3
*/


我上边几个简单的SQL语句仅是测试,操作表更好的做法需要做视图,存储过程等。


外贸综合平台:E贸通
2006-10-31 02:49
快速回复:关于建库的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035683 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved