I am organising a system to keep the track of assistance/punctuality in a music band weekly. We are around 40 people, and I would like how should I organize it. I need to save 2 things, hour of arrival, and reason. I also have in the database all members that were part of the band, and I mark if they are currently active. I don't want to erase data from any member, but new members may get into the band.
So... which is more efficient?
Try something like this:
BandMemberId (integer), FirstName (varchar), LastName (varchar), DateInserted (Date/Time), Active (boolean/bit)
AttendanceId (integer), BandMemberId (integer), Arrival (Date/Time), ReasonId (integer)
UPDATED WITH REASON TABLE:
ReasonId (integer), Reason (varchar)
This way you can join Attendance table to BandMember table on BandMemberId.
UPDATED 5/25 NEW REQUIREMENTS:
Since you need to store information about each rehearsal/meeting, I'd do it like this:
BandMemberId (integer), FirstName (varchar), LastName (varchar), DateInserted (Date/Time), Active (boolean/bit)
EventId(int), EventName (varchar), EventDate (datetime), EventTypeId (int)
EventTypeId (int), EventDescription(varchar)
BandMemberEventId (int), BandMemberId(int), EventTypeId(int), TimeArrived(date/time), ReasonId (int), EventId (int)
ReasonId (int), Reason(varchar)