SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.07.2011 17:58:04

Триви
Участник
Зарегистрирован: 16.07.2011
Сообщений: 2

Правильная планировка таблиц базы

Коллеги, подскажите, пожалуйста, кто имел опыт разработок такого плана,
как правильно планируют базу на сайтах типа фриланс.рю и подобных.
Т.е. когда по факту две группы пользователей с многими разными полями.
Интересует вопрос загонять ли их в одну таблицу или в две разных?
Не хотелось бы лохануться на начальном этапе,
чтобы потом все не переписывать, когда дело коснется,
например, обмена личными сообщениями!)
Заранее спасибо за совет!

Неактивен

 

#2 16.07.2011 18:02:17

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Правильная планировка таблиц базы

Они все объекты авторизации, сообщений и.т.д., поэтому разумно помещать в одну таблицу. А все дополнительные поля хранить в отдельных таблицах - при такой схеме человек сможет выступать одновременно в двух ролях, если про него есть информация в двух дополнительных таблицах.

Неактивен

 

#3 16.07.2011 19:31:32

Триви
Участник
Зарегистрирован: 16.07.2011
Сообщений: 2

Re: Правильная планировка таблиц базы

Спасибо.. а в какой таблице и как маркировать по принадлежности к роли?
В основной таблице по полю типа `customer_or_seller_flag` enum('0','1') NOT NULL default '0' ???

Отредактированно Триви (16.07.2011 19:35:48)

Неактивен

 

#4 16.07.2011 19:42:31

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Правильная планировка таблиц базы

Тут возможны варианты. Можно так, как вы написали. А можно сделать основную таблицу просто регистрацией, а затем "создать профиль продавца", "создать профиль покупателя" будут создавать запись в таблицах seller, customer. Эти записи будут содержать id из основной таблицы и наличие записи будет критерием наличия данного профиля. Для ускорения запросов можно будет в основной таблице создать SET('customer','seller').

Главное исходить из логики приложения. Спроектируйте всю систему целиком и будет понятно какая структура вам лучше.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson