Проектирование базы данных

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Аватара пользователя
undsoft
Сообщения: 20
Зарегистрирован: 2009.09.16, 14:16

Проектирование базы данных

Сообщение undsoft »

На сайте есть две роли - участницы конкурса и жюри.
Соответственно необходимые типы данных у них отличаются, хотя есть некоторые общие для обоих.
Вопрос в том, как лучше это реализовать. В оффлайн программировании это было бы два класса Участница и Жюри наследуемые от Пользователь. Можно конечно и в Вии модели наследовать, но как быть с базой?

1. Наплевать на все и объединить типы данных обоих пользователей в одну таблицу, активно используя NULL. Кривовато получится.

2. EAV, но насколько я понимаю это будет совсем неэкономично. И я пока не нахожу особой необходимости в этом, ведь количество различных полей у пользователей не настолько велико - роли-то две.

3. Сделать три таблицы: Пользователи, Жюри, Участницы. В Пользователи забить информацию общую для двух пользователей, в две остальные - кастомные поля для соответствующей роли с указателем на запись в таблице Пользователи.
Но использование этого будет не очень удобным - я не смогу красиво работать программно с этим, вроде как.

Any ideas?
Аватара пользователя
kosenka
Сообщения: 677
Зарегистрирован: 2009.09.26, 12:41
Откуда: москва
Контактная информация:

Re: Проектирование базы данных

Сообщение kosenka »

Я бы выбрал 1-й вариант: одна таблица пользователей, но записи в ней имеют разные роли. И все.
И когда юзер логиниться, то ты уже знаешь, кто это (какая роль) - Участник или Жюри.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Проектирование базы данных

Сообщение samdark »

Аватара пользователя
Svyatov
Сообщения: 459
Зарегистрирован: 2010.08.12, 14:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Проектирование базы данных

Сообщение Svyatov »

Смотря какое количество полей пересекается, а какие разные. Жюри я так понимаю мало совсем будет, по крайней мере ощутимо меньше участниц. Имхо можно и на 3 таблицы заморочится, в чем тут проблемы с красивостями?
Ответить