Guest User

Untitled

a guest
Dec 18th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. /*
  2. sample project goal
  3. ----------------------
  4.  
  5. one school per schema
  6.  
  7. every school has students
  8. every school has assignments
  9.  
  10. You can assign assignments to students. Those assignments can be from every school.
  11. */
  12.  
  13. /* reset */
  14.  
  15. DROP SCHEMA school1 CASCADE;
  16. DROP SCHEMA school2 CASCADE;
  17.  
  18. /* create schemas */
  19.  
  20. CREATE SCHEMA school1;
  21.  
  22. CREATE SCHEMA school2;
  23.  
  24. /* create student tables */
  25. CREATE TABLE school1.students(
  26. id serial primary key NOT NULL,
  27. name varchar NOT NULL,
  28. unique(name)
  29. );
  30.  
  31. CREATE TABLE school2.students(
  32. id serial primary key NOT NULL,
  33. name varchar NOT NULL,
  34. unique(name)
  35. );
  36.  
  37. /* fill student tables with sample data */
  38. INSERT INTO school1.students ("name")
  39. VALUES ('Max');
  40. INSERT INTO school1.students ("name")
  41. VALUES ('Sarah');
  42. INSERT INTO school1.students ("name")
  43. VALUES ('Jane');
  44.  
  45. INSERT INTO school2.students ("name")
  46. VALUES ('David');
  47. INSERT INTO school2.students ("name")
  48. VALUES ('Lisa');
  49. INSERT INTO school2.students ("name")
  50. VALUES ('James');
  51.  
  52.  
  53. /* create assignments tables */
  54. CREATE TABLE school1.assignments(
  55. id serial primary key NOT NULL,
  56. title varchar NOT NULL,
  57. unique(title)
  58. );
  59.  
  60. CREATE TABLE school2.assignments(
  61. id serial primary key NOT NULL,
  62. title varchar NOT NULL,
  63. unique(title)
  64. );
  65.  
  66. /* fill assignment tables with sample data */
  67. INSERT INTO school1.assignments ("title")
  68. VALUES ('Assignment 01');
  69. INSERT INTO school1.assignments ("title")
  70. VALUES ('Assignment 02');
  71. INSERT INTO school1.assignments ("title")
  72. VALUES ('Assignment 03');
  73.  
  74. INSERT INTO school2.assignments ("title")
  75. VALUES ('Assignment 04');
  76. INSERT INTO school2.assignments ("title")
  77. VALUES ('Assignment 05');
  78. INSERT INTO school2.assignments ("title")
  79. VALUES ('Assignment 06');
  80.  
  81.  
  82. /* create assignments_students tables */
  83. CREATE TABLE school1.assignments_students(
  84. student_id int REFERENCES school1.students (id) ON UPDATE CASCADE ON DELETE CASCADE,
  85. assignment_id int REFERENCES school1.assignments (id) ON UPDATE CASCADE ON DELETE CASCADE,
  86. CONSTRAINT assignments_products_pkey PRIMARY KEY (assignment_id, student_id)
  87. );
  88.  
  89. CREATE TABLE school2.assignments_students(
  90. student_id int REFERENCES school2.students (id) ON UPDATE CASCADE ON DELETE CASCADE,
  91. assignment_id int REFERENCES school2.assignments (id) ON UPDATE CASCADE ON DELETE CASCADE,
  92. CONSTRAINT assignments_products_pkey PRIMARY KEY (assignment_id, student_id)
  93. );
Add Comment
Please, Sign In to add comment