COP 4708 · Assignment 3 · Database Design
You are the consultant. Four draft entities, a set of functional dependencies, and twenty minutes with the director. Turn it into a database design that satisfies every constraint.
The fundraising or donations can be through donors or through events. One donor can make recurrent donations or one time donation, which means that a donation must have a donor but a donor does not have to donate always. If donations are not enough an event will be initiated. Usually the collected donation will support one project or several projects. So a project must be supported by a donation, and donations have to be used for projects. Executive Director, Halifax Community Foundation
Every sentence above becomes a constraint your design has to enforce. So does every functional dependency.
The board opens with the consultant's four draft tables already filled in. They are a starting point, not an answer — two of them are wrong.
For every column you set a data type, a size where the type needs one, whether it is a primary key, whether it is unique, whether it is a foreign key and to which table, and whether it accepts NULL.
Constraints turn green as your design starts to enforce them. All fifteen have to be green.
Minimum cardinality is nullability. "A donation must have a donor" is not a diagram decoration — it is NOT NULL on the foreign key. That is the whole translation.
A column holds one value. If the director says a donation can support several projects, no single column in the donation table can carry that.
From the interview and the dependencies. Green when the schema enforces it.
Drag onto a table — or click it, then click the table.