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

chang1216 2007-04-20 12:20:22
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这个表 为 其它三个表的关联表 一个人员可以对应 多个部门 在各个部门里对应不同的职务 谢谢 大家帮我分析一下 经理说 感觉有点问题
...全文
263 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
青锋-SS 2007-04-20
  • 打赏
  • 举报
回复
一般部门和人员是一对多的,怎么反过来了,难道可以兼职?
chang1216 2007-04-20
  • 打赏
  • 举报
回复
怎么没有人来呢? 不会都下班了吧
chang1216 2007-04-20
  • 打赏
  • 举报
回复
我的问题是 我的 bm_person 表是否 合理 我们经理说不太合理 就是我用一个表 里面的三个字段 去关联 其余的三个基础表 请大家帮我分析一下 如果不合理我应该如何改正
一个人员可以对应 在多个部门任职 在各个部门里对应不同的职务

dephibegin 2007-04-20
  • 打赏
  • 举报
回复
画图看是个好办法,直观点
ankor 2007-04-20
  • 打赏
  • 举报
回复
把E-R图画出来.看看关联``
chang1216 2007-04-20
  • 打赏
  • 举报
回复
回sdhylj(青锋-SS(期待Solaris光盘)) 我这里可能一个人 在多个部门 也就是他们两个是 多对多的关系
chang1216 2007-04-20
  • 打赏
  • 举报
回复
如果职务id只属于某个部门,那么就应该在部门的表里加一个部门id的字段,那么关系表里应该只有 person_id 和 zhiwu_id
如果这样的话 如果一个人给了一个部门 但是这个时候 还未分配职务 怎么办 根据什么能找到他呢
yuemb369 2007-04-20
  • 打赏
  • 举报
回复
如果职务id只属于某个部门,那么就应该在部门的表里加一个部门id的字段,那么关系表里应该只有 person_id 和 zhiwu_id
yuemb369 2007-04-20
  • 打赏
  • 举报
回复
如果不同部门的职务id是一样的,这样设计没什么问题,如果职务id只属于某个部门,那么就应该在部门的表里加一个部门id的字段

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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