首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请教小弟我的表这样设计 是否合理 有什么弊端

2012-01-23 
请问我的表这样设计 是否合理 有什么弊端ifexists(select*fromdbo.sysobjectswhereidobject_id(N [dbo].[

请问我的表这样设计 是否合理 有什么弊端
if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N '[dbo].[BM_Person] ')   and   OBJECTPROPERTY(id,   N 'IsUserTable ')   =   1)
drop   table   [dbo].[BM_Person]
GO

if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N '[dbo].[BM] ')   and   OBJECTPROPERTY(id,   N 'IsUserTable ')   =   1)
drop   table   [dbo].[BM]
GO

if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N '[dbo].[BM_zhiwu] ')   and   OBJECTPROPERTY(id,   N 'IsUserTable ')   =   1)
drop   table   [dbo].[BM_zhiwu]
GO

if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N '[dbo].[BM_yuangong] ')   and   OBJECTPROPERTY(id,   N 'IsUserTable ')   =   1)
drop   table   [dbo].[BM_yuangong]
GO

CREATE   TABLE   [dbo].[BM_Person]   (
[bm_id]   [int]   NULL   ,
[person_id]   [int]   NULL   ,
[zhiwu_id]   [int]   NULL  
)   ON   [PRIMARY]
GO
CREATE   TABLE   [dbo].[BM]   (
[BM_id]   [int]   IDENTITY   (1,   1)   NOT   NULL   ,
[BM_name]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[BM_miaoshu]   [varchar]   (8000)   COLLATE   Chinese_PRC_CI_AS   NULL  
)   ON   [PRIMARY]
GO

CREATE   TABLE   [dbo].[BM_zhiwu]   (
[zhiwu_id]   [int]   IDENTITY   (1,   1)   NOT   NULL   ,
[zhiwu_name]   [varchar]   (500)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[zhiwu_bm_id]   [int]   NULL  
)   ON   [PRIMARY]
GO

CREATE   TABLE   [dbo].[BM_yuangong]   (
[Person_id]   [int]   IDENTITY   (1,   1)   NOT   NULL   ,
[Person_zhuangtai]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_daima]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_xingming]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_xingbie]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_jiguan]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_chusheng]   [datetime]   NULL   ,
[Person_ruzhi]   [datetime]   NULL   ,
[Person_xueli]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_xuexiao]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_zhuanye]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_dianhua]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_fenji]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_shouji]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_dizhi]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_youxiang]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,


[Person_zhaopian]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_zw_id]   [int]   NULL   ,
[Person_gongzuo]   [varchar]   (2000)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Person_lizhi_date]   [datetime]   NULL   ,
[Person_lizhi_yuanyin]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL  
)   ON   [PRIMARY]
GO


BM_Person这个表   为   其它三个表的关联表   一个人员可以对应   多个部门   在各个部门里对应不同的职务   谢谢   大家帮我分析一下   经理说   感觉有点问题  


[解决办法]
一般部门和人员是一对多的,怎么反过来了,难道可以兼职?
[解决办法]
如果不同部门的职务id是一样的,这样设计没什么问题,如果职务id只属于某个部门,那么就应该在部门的表里加一个部门id的字段
[解决办法]
如果职务id只属于某个部门,那么就应该在部门的表里加一个部门id的字段,那么关系表里应该只有 person_id 和 zhiwu_id

[解决办法]
把E-R图画出来.看看关联``
[解决办法]
画图看是个好办法,直观点

热点排行
Bad Request.