TSQL:每月更改的团队结构的表设计

时间:2016-06-22 10:55:19

标签: sql-server

我无法想出一个能够应对每个月可以改变的4级团队结构的设计。

级别1:最低级别

Serializable
  • 以YYYYMM格式存储的YearMonth
  • panelname每月必须是唯一的
  • panelID每月必须是唯一的
  • 员工(StaffID)每年只能管理一个面板ID
  •   -

Level2:Level1经理

YearMonth int
PanelID   varchar(8)
PanelName varchar(50)
StaffID   varchar(8)
  • 经理(L2ManagerID)每年只能管理一个Level2
  • Level2Name在YearMonth中是唯一的

等级3:等级2的经理

 YearMonth:  int
 Level2Name: varchar(50)
 L2ManagerID:  varchar(8)
  • 经理(L3ManagerID)每年只能管理一个Level3
  • Level3Name在YearMonth中是唯一的

等级4:等级3的经理

 YearMonth: int
 Level3Name: varchar(50)
 L3ManagerID:  varchar(8)
  • 经理(L4ManagerID)每年只能管理一个Level4
  • Level4Name每年每月都是唯一的

关系

  • Level4与Level3有一对多的关系
  • Level3与Level2有一对多的关系
  • Level2与Level1有一对多的关系

有人可以建议管理这个的最佳结构吗?怎么能每个月更新一次?

我已经看过了我认为可以解决一些设计问题的独特约束,但我不确定最好使用它们或应该使用哪些主键。

我很感激任何指导。

我正在使用SQL Server 2008R2,很快就会升级到2014年。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 使用INT类型作为您的ID字段。
  2. 了解什么是“IDENTITY”
  3. 了解什么是PRIMARY KEY
  4. 了解什么是外键_
  5. 了解“更新”声明是什么 在您理解了这些概念后,您可以回答您的问题或提出更好的问题。