организовать помощь в MySQL: таблицы VS столбцы - PullRequest
0 голосов
/ 23 мая 2011

Причина

Я организую систему еженедельного отслеживания помощи / пунктуальности в музыкальной группе.Нас около 40 человек, и мне хотелось бы, как мне это организовать.Мне нужно сохранить 2 вещи, час прибытия и причину.У меня также есть в базе данных все участники, которые были частью группы, и я отмечаю, если они в настоящее время активны.Я не хочу стирать данные с какого-либо участника, но новые участники могут войти в группу.

Параметры

  1. Создать таблицу для каждого пользователя и запись для каждого дняс указанием времени его прибытия и причины:
    • 3 столбца
    • 1 строка / неделя
    • 40 таблиц (или более)
  2. Создание таблицы по причинам и таблицы для поступлений:
    • 1 начальный + 1 столбец / неделя
    • 40 строк в таблице (или более)
    • 2 таблицы
  3. Создание таблицы для каждого дня:
    • 3 столбца на таблицу
    • 40 строк / таблиц (или более)
    • 1 таблицы/ неделя

Итак ... что более эффективно?

1 Ответ

2 голосов
/ 23 мая 2011

Попробуйте что-то вроде этого:

Таблица BandMembers:

BandMemberId (целое число), FirstName (varchar), LastName (varchar), DateInserted (Дата / Время), Активный (логический / бит)

Таблица посещаемости:

AttendanceId (целое число), BandMemberId (целое число), Прибытие (Дата / Время), ReasonId (целое число)

ОБНОВЛЕНО ТАБЛИЦЕЙ ПРИЧИН:

Таблица причин:

ReasonId (целое число), Причина (varchar)

Таким образом, вы можете присоединить таблицу посещаемости к таблице BandMember в BandMemberId.


ОБНОВЛЕНО 5/25 НОВЫЕ ТРЕБОВАНИЯ:

Поскольку вам нужно хранить информацию о каждой репетиции / собрании, я бы сделал это следующим образом:

Таблица BandMember:

BandMemberId (целое число), FirstName (varchar), LastName (varchar), DateInserted (дата / время), активный (логический / бит)

EventTable:

EventId (int), EventName (varchar), EventDate (datetime), EventTypeId (int)

Таблица типов событий:

EventTypeId (int), EventDescription (varchar)

Таблица BandMemberEvent:

BandMemberEventId (int), BandMemberId (int), EventTypeId (int), TimeArrived (дата / время), ReasonId (int), EventId (int)

Таблица причин:

ReasonId (int), Reason (varchar)

...