知道一些数据结构的理论知识和数据库设计的理论知识,但是到实际应用中却又不知道如何下手。现在有个简单的问题,做一个仓位管理的软件。但是首先数据库的设计就有点麻烦了。我的问题描述如下:
一、 区位(A、B、C、D、E、F)
二、 层位(A01、A02、A03、A04、A05、B01、B02、B03、B04、B05、B06、B07、)
三、 框位(A0101、A0102、A0103、A0104、A0105、A0106、A0107、A0108、A0109、A0110;B0101、B0102、B0103、B0104、B0105、B0106、B0107、B0108、B0109、B0110)
不知道以上的描述大家可以看的懂不?
我的数据库设计是这样的:CREATE TABLE [dbo].[territory] (
[t_id] [int] NOT NULL ,
[t_code] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[t_name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GOCREATE TABLE [dbo].[floor] (
[f_tid] [int] NOT NULL ,
[f_id] [int] NOT NULL ,
[f_code] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[f_name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GOCREATE TABLE [dbo].[box] (
[b_tid] [int] NOT NULL ,
[b_fid] [int] NOT NULL ,
[b_id] [int] NOT NULL ,
[b_code] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[b_name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GOterritory表里t_id是主健,floor表里f_tid,f_id是主健,最后一个表box里b_id,b_fid,b_id是主健。 总觉得存在什么问题?针对以上问题描述有没有理想一点的表结构?
一、 区位(A、B、C、D、E、F)
二、 层位(A01、A02、A03、A04、A05、B01、B02、B03、B04、B05、B06、B07、)
三、 框位(A0101、A0102、A0103、A0104、A0105、A0106、A0107、A0108、A0109、A0110;B0101、B0102、B0103、B0104、B0105、B0106、B0107、B0108、B0109、B0110)
不知道以上的描述大家可以看的懂不?
我的数据库设计是这样的:CREATE TABLE [dbo].[territory] (
[t_id] [int] NOT NULL ,
[t_code] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[t_name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GOCREATE TABLE [dbo].[floor] (
[f_tid] [int] NOT NULL ,
[f_id] [int] NOT NULL ,
[f_code] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[f_name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GOCREATE TABLE [dbo].[box] (
[b_tid] [int] NOT NULL ,
[b_fid] [int] NOT NULL ,
[b_id] [int] NOT NULL ,
[b_code] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[b_name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GOterritory表里t_id是主健,floor表里f_tid,f_id是主健,最后一个表box里b_id,b_fid,b_id是主健。 总觉得存在什么问题?针对以上问题描述有没有理想一点的表结构?
一、 区位(A、B、C、D、E、F)
二、 层位(A01、A02、A03、A04、A05、B01、B02、B03、B04、B05、B06、B07、)
三、 框位(A0101、A0102、A0103、A0104、A0105、A0106、A0107、A0108、A0109、A0110;B0101、B0102、B0103、B0104、B0105、B0106、B0107、B0108、B0109、B0110)
不知道以上的描述大家可以看的懂不?
我的数据库设计是这样的:
----------
既然这样,不如直接放一个表,就三个字段.放上所有的组合.
区位,层位,框位
A A01 A0101
A A01 A0102
...
如果是这样,可以设计成一个表,包括一个ID,和父级ID.
id code name parentid
------------------------
1 A A区 0
2 B B区 0
3 A01 A区1层 1
4 A02 A区2层 1
5 A0101 A区1层1框 3
。
列值:
A0101 A0102 B0101 B0102....
要那么多列干嘛!