面试题目:sql 设计表,过来晒晒你们会怎么设计!

svcce 2012-05-11 02:44:07
说明:总经理有2个
总经理下有隶属经理N个
每个隶属经理掌握1个或以上业务.但是所有业务的目标金额是一样的

架构

      总经理      2
       |       |
     ---------------------------
    |     |    |   ....
    |     |    |   ....
   隶属经理   2    3  .....
    目标    目标  目标  ......
  ————————————————————
  |  |  |  .......  |   .....
 业务 业务 业务 ....  业务   ........
---------------------------------------------------
本月目标金额
本月完成金额
本月完成率
--------------------------------------------------------
1-8月目标总金额
1-8月完成总金额
1-8月完成率
--------------------------------------------------
本年度目标总金额
本年度完成总金额
本年度完成率
-----------------------------------------------------------------





我是这样设计的:
表名:总经理
字段  类型    主键   外键   索引  是否为空
姓名  varchar(12) T              NOT
ID   INT(1,1)


表名:隶属经理
字段  类型    主键   外键   索引  是否为空
姓名  varchar(12) T               NOT
上级  varchar(12)     T(总经理:姓名)     NOT
ID    INT(1,1)

表名:目标
字段  类型    主键   外键   索引  是否为空
目标金额  money                NOT
负责人  varchar(12)     T(隶属经理:姓名)   NOT
年月   varchar(6)                NOT
ID    INT(1,1)

表名:实际
字段  类型    主键   外键   索引  是否为空
业务  varchar(20)               NOT
完成金额  money                 NOT
负责人  varchar(12)     T(隶属经理:姓名)     NOT
年月   varchar(6)                NOT
ID    INT(1,1)

 

...全文
215 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
svcce 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
总经理和隶属经理作为一个表,两者关系可以通过自连接实现。 其实就是用楼主的第二个表就够了,只不过总经理的上级这里为空。这个表可以归结为员工信息表。

目标单独一个表,这个是为了方便更新目标,如果业务和目标放在一个表,以后业务很多了。数据量很多要更新目标,就得更新所有记录,效率不高。

业务描述表 如果业务有描述,所属部门等这些描述信息。得需要一个业务描述表。

业务业绩表 就如楼主的第……
[/Quote]

谢谢指点
十林 2012-05-13
  • 打赏
  • 举报
回复
总经理和隶属经理作为一个表,两者关系可以通过自连接实现。 其实就是用楼主的第二个表就够了,只不过总经理的上级这里为空。这个表可以归结为员工信息表。

目标单独一个表,这个是为了方便更新目标,如果业务和目标放在一个表,以后业务很多了。数据量很多要更新目标,就得更新所有记录,效率不高。

业务描述表 如果业务有描述,所属部门等这些描述信息。得需要一个业务描述表。

业务业绩表 就如楼主的第四个表,不过可能得考虑一下这个表的时间粒度,也就是记录基于每天,还是每月,每年。按照楼主给出的描述,应该到每月就好了,但是还是考虑多些好。

有所不妥之处,还请谅解。
PS:表的数量并不是越少越好(当然也不是越多越好),关键是合理,易用,易于扩展等等。
所以考虑就得多些。
svcce 2012-05-11
  • 打赏
  • 举报
回复
继续在线等,前辈们,指点一二!
学习中------- 2012-05-11
  • 打赏
  • 举报
回复
姓名+目标 为主键
svcce 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

建议,后面3张一张表
[/Quote]

是挺好的。
似乎是我多想了,竟然弄了这么多表。
不知道我的面试成绩如何呢!
svcce 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
经理,隶属经理一个表,就叫经理表。 有一个自关联ID足以
目标,实际,一个表。本来就是一一对应的没必要分两个表

所以最终就两个表,经理表和 业务表
[/Quote]

因为 隶属经理 有一个或以上的业务并且所有目标金额一样的。所以我就考虑了分开!
所以在目标那里就只需要一条数据,实际就几条这样!!不知道我的想法是否好!
但是我知道以后合并查询会比较麻烦!
学习中------- 2012-05-11
  • 打赏
  • 举报
回复
建议,后面3张一张表
fengerfei2000 2012-05-11
  • 打赏
  • 举报
回复
经理,隶属经理一个表,就叫经理表。 有一个自关联ID足以
目标,实际,一个表。本来就是一一对应的没必要分两个表

所以最终就两个表,经理表和 业务表
svcce 2012-05-11
  • 打赏
  • 举报
回复
希望大牛们指点一下我的不足!

695

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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