私はデータベース設計のためにこのようなことをします:
Create Table Projects
(
ProjectID int Identity(1,1),
ProjectName varchar(50) Primary Key NonClustered,
OtherStuff varchar(255)
)
CREATE CLUSTERED INDEX IX_PROJECTS_ID ON dbo.Projects(ProjectID)
Create Table Employees
(
EmployeeID int Identity(1,1),
EmployeeName varchar(50) Primary Key NonClustered,
)
CREATE CLUSTERED INDEX IX_EMPLOYEES_ID ON dbo.Employees(EmployeeID)
Create Table ProjectEmployees
(
ProjectID int,
EmployeeID int,
Constraint pk_ProjectEmpoyees Primary Key (ProjectID, EmployeeID)
)
Create Table Tasks
(
TaskID int Identity(1,1),
TaskName varchar(50) Primary Key NonClustered,
AssignedEmployeeID int, --NOTE: assumes only 1 employee per task
OtherStuff varchar(255)
)
CREATE CLUSTERED INDEX IX_TASKS_ID ON dbo.Tasks(TaskID)
Create Table TaskPrecedents
(
TaskID int,
PrecedentTaskID int,
PrecedentType Char(2) --Codes, you'll have to work these out
Constraint pk_TaskPrecedents Primary Key (TaskID, PrecedentTaskID)
)