知道一些数据结构的理论知识和数据库设计的理论知识,但是到实际应用中却又不知道如何下手。现在有个简单的问题,做一个仓位管理的软件。但是首先数据库的设计就有点麻烦了。我的问题描述如下:
一、 区位(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是主健。 总觉得存在什么问题?针对以上问题描述有没有理想一点的表结构?

解决方案 »

  1.   

    知道一些数据结构的理论知识和数据库设计的理论知识,但是到实际应用中却又不知道如何下手。现在有个简单的问题,做一个仓位管理的软件。但是首先数据库的设计就有点麻烦了。我的问题描述如下: 
    一、 区位(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
    ...
      

  2.   

    从楼主的需求来看,似乎是一个树型关系
    如果是这样,可以设计成一个表,包括一个ID,和父级ID.
      

  3.   

    放一个表:
    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
      

  4.   

    这个的却没有一个标准的答案。从楼主的分析来看,我感觉把表设计成一个比较好,其实就是一个树形的关系,设置父类id和子类id进行关联
      

  5.   

    只用一列就行了.
    列值:
    A0101 A0102 B0101 B0102....
    要那么多列干嘛!