0

原因

我正在组织一个系统来跟踪每周在乐队中的帮助/准时情况。我们大约有 40 人,我想我应该如何组织它。我需要保存两件事,到达时间和原因。我在数据库中也有乐队的所有成员,我标记他们当前是否活跃。我不想删除任何成员的数据,但新成员可能会加入乐队。

选项

  1. 为每个用户创建一个表,并为每一天创建一个条目,参考他到达的时间和原因:
    • 3列
    • 1 行/周
    • 40桌(或更多)
  2. 为原因创建一个表和一个到达表:
    • 1 首字母 + 1 列/周
    • 每表 40 行(或更多)
    • 2张桌子
  3. 为每一天创建一个表:
    • 每表 3 列
    • 40行/表(或更多)
    • 1桌/周

那么......哪个更有效?

4

1 回答 1

2

尝试这样的事情:

乐队成员表:

BandMemberId (integer), FirstName (varchar), LastName (varchar), DateInserted (Date/Time), Active (boolean/bit)

考勤表:

AttendanceId (整数), BandMemberId (整数), Arrival (日期/时间), ReasonId (整数)

更新原因表:

原因表:

ReasonId (整数), Reason (varchar)

这样,您可以将出勤表加入 BandMemberId 上的 BandMember 表。


5/25 更新的新要求:

由于您需要存储有关每次排练/会议的信息,我会这样做:

乐队成员表:

BandMemberId (integer), FirstName (varchar), LastName (varchar), DateInserted (Date/Time), Active (boolean/bit)

事件表:

EventId(int)、EventName(varchar)、EventDate(日期时间)、EventTypeId(int)

事件类型表:

EventTypeId (int), EventDescription(varchar)

乐队成员活动表:

BandMemberEventId (int), BandMemberId(int), EventTypeId(int), TimeArrived(日期/时间), ReasonId (int), EventId (int)

原因表:

ReasonId (int), Reason(varchar)

于 2011-05-23T19:06:51.647 回答