Table: Project
Columns
Name | Type | Constraints | Description
project_KEY | int | NOT NULL | AUTO-INCREMENT: Database assigned primary key for this table.
update__staff_KEY | int | NOT NULL |
update_date | datetime | NOT NULL |
create_date | datetime | NOT NULL |
schedule_item_KEY | int | NOT NULL | The [Schedule_Item] that owns this link.
project_number | int | NOT NULL | User defined number (unique).
long_description | nvarchar (-1) | NOT NULL | Long description to use on invoices.
responsible__staff_KEY | int |  | Key to a Staff that will be responsible for generated projects.
department_KEY | int |  | Key to a Department that will be used for generated projects.
target | nvarchar (1000) | NOT NULL | Target to execute. File name or url.
completion_event | nvarchar (50) | NOT NULL | Description of a "User" type client status event that will mark this Project as being complete.
budgeted_based_on_tasks | bit | NOT NULL | When set to 1 will indicate that the budget is entirely based off the budget of the Tasks for the generated project.
budgeted_amount | decimal (9, 2) | NOT NULL | Amount budgeted to this project (when budgeted_based_on_tasks = 0).
percent_complete | decimal (3, 2) | NOT NULL | Percent complete as a decimal (0 to 1.00).
received_date | smalldatetime |  | Date the information required to begin the project was recieved.
actual_start_date | smalldatetime |  | The actual start date.
actual_complete_date | smalldatetime |  | The actual complete date.
row_version | timestamp | NOT NULL |
project_template_KEY | int | NOT NULL | Key to the Project Template that was used to generate this Project.
original_due_date | smalldatetime | NOT NULL | The original due date of the project; readonly once the record is created.
extension_number | int | NOT NULL | Number of the current extension. 0=not extended, 1=first extension, etc. We expect to find a record in dbo.Project_Extension with this project_KEY and extension_number but not absolutely required (weak relationship).
solution_type_name | nvarchar (50) | NOT NULL | Name of the type of solution that is used for this Project. The system has a finite set of solution type names defined.
completion_event_recorded_date | datetime | NOT NULL | Only completion events recorded after this date are eligible to complete this Project. When the completion event is used to complete the Project this value must be updated.
budgeted_amount_is_calculated | bit | NOT NULL |
percent_complete_is_overridden | bit | NOT NULL |
extension_event | nvarchar (50) | NOT NULL | Description of a "User" type client status event that will cause this [Project] to be extended.
project_template_id | nvarchar (11) | NOT NULL | Cached value of the project_template_id for the associated Project template.
project_template_id_sortable | varchar (48) | NOT NULL | Cached value of the project_template_id_sortable for the associated Project template.
gofileroom_workflow_KEY | int |  | GoFileRoom Workflow associated with this Project.
create__changeset_KEY | int | NOT NULL |
update__changeset_KEY | int | NOT NULL |

Primary key
Name | Columns | Description
PK_Project$project_KEY | project_KEY | CLUSTERED
Unique constraints
Name | Columns | Description
UK_Project$project_KEY$schedule_item_KEY | project_KEY, schedule_item_KEY | This unique constraint supports the relationship between project_KEY and project__schedule_item_KEY on Sheet_Entry.
UK_Project__project_KEY__project_template_KEY | project_KEY, project_template_KEY | This unique constraint supports the relationship from Project to Task to Task_Template where a Task_Template assigned to a Task must also be assigned the same Project_Template as the Project.
UK_Project__project_number | project_number |
UK_Project__project_template_KEY__project_KEY | project_template_KEY, project_KEY |
UK_Project__schedule_item_KEY | schedule_item_KEY |
Indexes
Name | Columns | Description
IX_Project$department_KEY | department_KEY | Index supports foreign key FK_Project__Department__department_KEY
IX_Project$project_template_id | project_template_id |
IX_Project$project_template_id_sortable | project_template_id_sortable |
IX_Project$project_template_KEY$project_template_id$project_template_id_sortable | project_template_KEY, project_template_id, project_template_id_sortable | Index supports foreign key FK_Project__Project_Template__project_template_KEY__project_template_id__project_template_id_sortable
IX_Project$responsible__staff_KEY | responsible__staff_KEY | Index supports foreign key FK_Project__Staff__responsible__staff_KEY

Foreign keys
Name | Columns | Referenced table | Description
FK_Project__Department__department_KEY | department_KEY | Department |
FK_Project__Gofileroom_Workflow__gofileroom_workflow_KEY | gofileroom_workflow_KEY | Gofileroom_Workflow |
FK_Project__Project_Template__project_template_KEY | project_template_KEY | Project_Template |
FK_Project__Project_Template__project_template_KEY__project_template_id__project_template_id_sortable | project_template_KEY, project_template_id, project_template_id_sortable | Project_Template | on update cascade;
FK_Project__Schedule_Item__schedule_item_KEY | schedule_item_KEY | Schedule_Item |
FK_Project__Staff__responsible__staff_KEY | responsible__staff_KEY | Staff |

Incoming foreign keys
Name | Columns | Referencing table | Description
FK_Project_Extension__Project__project_KEY | project_KEY | Project_Extension | on delete cascade;
FK_Task__Project__project_KEY__project_template_KEY | project_KEY, project_template_KEY | Task | on delete cascade;
FK_Sheet_Entry__Project__project_KEY | project_KEY | Sheet_Entry |
FK_Sheet_Entry__Project__project_KEY__project__schedule_item_KEY | project_KEY, project__schedule_item_KEY | Sheet_Entry |