diff --git a/STINK_student_records/STINK_student_records.xml b/STINK_student_records/STINK_student_records.xml index 6268591..58daabb 100644 --- a/STINK_student_records/STINK_student_records.xml +++ b/STINK_student_records/STINK_student_records.xml @@ -156,6 +156,8 @@ CONSTRAINT Paper_PK PRIMARY KEY ( Paper_Code ) ); + +
As with Qualification.Type
, we could create a separate lookup table for Period
. This table could even store additional information about the period, such as its full name, start and end dates, etc.
It’s important when implementing “boolean” style columns such as International
in Student
and Release
in Assessment
that you are consistent in the values that you use across all such columns (more precisely, all such columns should have the same domain). Quite a few people did something like implement one column as 'T', 'F'
and the other as 'True', 'False'
, or even more subtle, 't', 'f'
(remembering that SQL is case sensitive). Using inconsistent domains for columns that should have the same domain could lead to subtle bugs later on.
It’s important when implementing “Boolean” style columns such as International
in Student
and Release
in Assessment
that you are consistent in the values that you use across all such columns (more precisely, all such columns should have the same domain). Quite a few people did something like implement one column as 'T', 'F'
and the other as 'True', 'False'
, or even more subtle, 't', 'f'
(remembering that SQL is case sensitive). Using inconsistent domains for columns that should have the same domain could lead to subtle bugs later on.
This of course is really a consequence of not having a proper BOOLEAN
data type in SQL. However, one person did discover—possibly inadvertently, given that it isn’t mentioned anywhere in the documentation—that BOOLEAN
data type in CREATE TABLE
! This certainly wasn’t possible in older versions, where BOOLEAN
was available in PL/SQL only.
This of course is really a consequence of not having a proper BOOLEAN
data type in SQL. However, one person did discover—possibly inadvertently, given that it isn’t mentioned anywhere in the documentation—that BOOLEAN
data type in CREATE TABLE
! This certainly wasn’t possible in older versions, where BOOLEAN
was available in PL/SQL only. The inconsistency of implementation of a Boolean data type across various DBMSs means that it’s generally safer to use the approach above if portability is important.
Once again, we could use a lookup table for Staff.Rank
.
Role
could be constrained using a lookup table.
Type
could be constrained by a lookup table.