maksim92
@maksim92
Изучаю Yii Framework

Как спроектировать БД MySQL?

Занялся проектированием. Сам только начинаю работать серьезно с базами данных. Прошу помощи и комментариев по текущей структуре базы.
5b9bee96f3aba616761574.pngСуть базы данных.

Есть пользователи с разными ролями:
— Судья
— Организатор
— Главный судья
и т. д.

Каждый пользователь имеет сертификацию на судейство, и организацию. Эти данные хранятся в 3-х таблицах: certification_chief, certification_judge, certification_organizer

Организатор создает событие в таблице event.

После чего, организатор назначает себе на событие судей и главного судью в последствии и другой персонал. Однако назначит он может только тех, кто имеет действующую сертификацию из таблиц certification_chief, certification_judge, certification_organizer

Другая информация

1. Пользователей сейчас 500, но расти будет примерно до 100 000 человек
2. У каждого пользователя в среднем 3-4 аттестации в год (3-4 записи в таблицы)
3. Событий за год проходит примерно 200 шт.
4. На событие назначается в среднем 10 человек или около 20 категорий

200 х 20 = ~ 4000 записей в год по назначениям

1. Просьба указать на явные ошибки и огрехи.
2. Скорее всего создавать несколько однотипных таблиц - это глупо, но ведь база может расти. В месяц растёт на 500 записей. Я думаю, что это ерунда, учитывая, что там, в основном, только числа (ID)
3. Прошу прокомментировать по любой мелочи) Не хочется допустить ошибок и переделок в дальнейшем
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Softovick
@Softovick
программист, администратор
1 и вы это даже понимаете, но почему то все равно сделали. Одинаковые данные хранятся в одной таблице, а не в трех разных. Если данные практически одинаковые, но имеют 1 признак, различный - лучше сделать его в виде поля в таблице. Просто добавьте, например, в таблицу сертификатов поле с обозначением роли. Избавитесь от кучи трудностей в дальнейшем.

Для MySQL и 1 млн записей не проблема, если что. Не на тех хомяках экономить пытаетесь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alex-1917
@alex-1917
Посмотрите баддипресс, там точно такие же стартовые данные, касаемо вашей псевдотаблицы - есть там и такой кусок, реализован не на 9, а на 4 таблицах!!))
Т.е. берете баддипресс, запускаете с демо-данными и выгружаете дамп БД в любой конструктор, далее тщательно и вдумчиво изучаете сформированную блок-схему.
Или поищите в гугле блок-схему оную, наверное, есть....
Баддипресс кароч. Это все, что надо знать про роли.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы