Denis2312

Untitled

Mar 20th, 2024
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. CREATE SEQUENCE department_seq START WITH 1 INCREMENT BY 1;
  2. CREATE SEQUENCE employee_seq START WITH 1 INCREMENT BY 1;
  3. CREATE SEQUENCE project_seq START WITH 1 INCREMENT BY 1;
  4. CREATE SEQUENCE assignment_seq START WITH 1 INCREMENT BY 1;
  5.  
  6. CREATE TABLE department (
  7. ID INT PRIMARY KEY,
  8. Name VARCHAR2(50) NOT NULL,
  9. dept_manager_id INT UNIQUE
  10. );
  11.  
  12. CREATE TABLE employee (
  13. id INT NOT NULL PRIMARY KEY,
  14. first_name VARCHAR2(50) NOT NULL,
  15. last_name VARCHAR2(50) NOT NULL,
  16. dob DATE DEFAULT NULL,
  17. is_contractor NUMBER(1,0) NOT NULL DEFAULT 0,
  18. manager_id INT DEFAULT NULL,
  19. FOREIGN KEY (manager_id) REFERENCES department (id)
  20. );
  21.  
  22. ALTER TABLE department ADD CONSTRAINT dept_emp_fk FOREIGN KEY (dept_manager_id) REFERENCES employee (ID);
  23.  
  24.  
  25. CREATE TABLE Contractor (
  26. id INT NOT NULL PRIMARY KEY,
  27. hour_rate DECIMAL(10,2) NOT NULL,
  28. company VARCHAR2(100) DEFAULT 'Self employed',
  29. specialty VARCHAR2(100) DEFAULT NULL,
  30. FOREIGN KEY (id) REFERENCES employee (id)
  31. );
  32.  
  33. CREATE TABLE Salaried_employee (
  34. id INT NOT NULL PRIMARY KEY,
  35. hire_date DATE DEFAULT NULL,
  36. experience NUMBER(3) DEFAULT 0,
  37. salary DECIMAL(10,2) DEFAULT 2000,
  38. week_hours NUMBER(3) DEFAULT 40,
  39. works_for_dept_id INT NOT NULL,
  40. FOREIGN KEY (id) REFERENCES employee (id),
  41. FOREIGN KEY (works_for_dept_id) REFERENCES department (ID)
  42. );
  43.  
  44. CREATE TABLE project (
  45. id INT PRIMARY KEY,
  46. name VARCHAR2(100) NOT NULL,
  47. description VARCHAR2(1000) DEFAULT '',
  48. Budget DECIMAL(10,0) DEFAULT NULL,
  49. start_date DATE DEFAULT NULL,
  50. end_date DATE DEFAULT NULL,
  51. deadline DATE DEFAULT NULL,
  52. status VARCHAR2(10) DEFAULT 'running' CHECK (status IN ('completed', 'running')),
  53. coordinated_by_emp_id INT NOT NULL,
  54. owned_by_dept_id INT NOT NULL,
  55. FOREIGN KEY (coordinated_by_emp_id) REFERENCES employee (id),
  56. FOREIGN KEY (owned_by_dept_id) REFERENCES department (ID)
  57. );
  58.  
  59. CREATE TABLE assignment (
  60. id INT PRIMARY KEY,
  61. proj_id INT NOT NULL,
  62. emp_id INT NOT NULL,
  63. assign_date DATE DEFAULT NULL,
  64. hours_worked NUMBER(3),
  65. CONSTRAINT uniq_proj_emp_assign UNIQUE (proj_id, emp_id, assign_date),
  66. FOREIGN KEY (proj_id) REFERENCES project (id),
  67. FOREIGN KEY (emp_id) REFERENCES employee (id)
  68. );
  69.  
Advertisement
Add Comment
Please, Sign In to add comment