Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. CREATE TABLE Students
  2. (
  3. idnr CHAR(10) NOT NULL,
  4. student_name TEXT NOT NULL,
  5. login CHAR(7) NOT NULL,
  6. UNIQUE(login),
  7. program TEXT NOT NULL,
  8. PRIMARY KEY (idnr)
  9. );
  10.  
  11. CREATE TABLE Branches
  12. (
  13. branch_name TEXT,
  14. program TEXT,
  15. PRIMARY KEY(branch_name, program)
  16. );
  17.  
  18. CREATE TABLE Courses
  19. (
  20. code CHAR(6) NOT NULL,
  21. name TEXT NOT NULL,
  22. credits INT NOT NULL,
  23. CHECK (credits >0),
  24. department TEXT NOT NULL,
  25. PRIMARY KEY(code)
  26. );
  27.  
  28. CREATE TABLE LimitedCourses(
  29. code CHAR(6) NOT NULL,
  30. seats INT NOT NULL,
  31. CHECK(seats >= 0),
  32. PRIMARY KEY(code),
  33. FOREIGN KEY(code) REFERENCES Courses(code)
  34. );
  35.  
  36. CREATE TABLE Classifications
  37. (
  38. name TEXT NOT NULL,
  39. PRIMARY KEY(name)
  40. );
  41.  
  42. CREATE TABLE StudentBranches
  43. (
  44. student CHAR(10) NOT NULL,
  45. branch TEXT NOT NULL,
  46. program TEXT NOT NULL,
  47. PRIMARY KEY(student),
  48. FOREIGN KEY (student) REFERENCES Students(idnr),
  49. FOREIGN KEY(branch, program) REFERENCES Branches(branch_name, program)
  50. );
  51.  
  52. CREATE TABLE Classified
  53. (
  54.  
  55. course CHAR(6) NOT NULL,
  56. classifications TEXT NOT NULL,
  57. PRIMARY KEY(course, classifications),
  58. FOREIGN KEY(course) REFERENCES Courses(code),
  59. FOREIGN KEY(classifications) REFERENCES Classifications(name)
  60. );
  61.  
  62. CREATE TABLE MandatoryProgram
  63. (
  64. course CHAR(6) NOT NULL,
  65. program TEXT NOT NULL,
  66. PRIMARY KEY(course, program),
  67. FOREIGN KEY(course) REFERENCES Courses(code)
  68. );
  69.  
  70. CREATE TABLE MandatoryBranch
  71. (
  72. course CHAR(6) NOT NULL,
  73. branch TEXT NOT NULL,
  74. program TEXT NOT NULL,
  75. PRIMARY KEY(course, branch, program),
  76. FOREIGN KEY(course) REFERENCES Courses(code),
  77. FOREIGN KEY(branch, program) REFERENCES Branches(branch_name, program)
  78. );
  79.  
  80. CREATE TABLE RecommendedBranch
  81. (
  82. course CHAR(6) NOT NULL,
  83. branch TEXT NOT NULL,
  84. program TEXT NOT NULL,
  85. PRIMARY KEY(course, branch, program),
  86. FOREIGN KEY(course) REFERENCES Courses(code),
  87. FOREIGN KEY(branch, program) REFERENCES Branches(branch_name, program)
  88. );
  89.  
  90. CREATE TABLE Registered
  91. (
  92. student CHAR(10) NOT NULL,
  93. course CHAR(6) NOT NULL,
  94. PRIMARY KEY(student, course),
  95. FOREIGN KEY(student) REFERENCES Students(idnr),
  96. FOREIGN KEY(course) REFERENCES Courses(code)
  97. );
  98.  
  99. CREATE TABLE Taken
  100. (
  101. student CHAR(10) NOT NULL,
  102. course CHAR(6) NOT NULL,
  103. grade CHAR(1),
  104. CHECK (grade IN ('U','3','4','5')),
  105. PRIMARY KEY(student, course),
  106. FOREIGN KEY(student) REFERENCES Students(idnr),
  107. FOREIGN KEY(course) REFERENCES Courses(code)
  108. );
  109.  
  110. CREATE TABLE WaitingList
  111. (
  112. student CHAR(10) NOT NULL,
  113. course CHAR(6) NOT NULL,
  114. position SERIAL NOT NULL,
  115. PRIMARY KEY(student, course),
  116. FOREIGN KEY(student) REFERENCES Students(idnr),
  117. FOREIGN KEY(course) REFERENCES LimitedCourses(code)
  118. )
  119.  
  120. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement