Проектирование базы данных. Вопрос о связи таблиц? - Webmasters.ru - RSS http://webmasters.ru/forum/showthread.php?t=72359 SEO форум вебмастеров - Поисковые системы, оптимизация, раскрутка сайта, оптимизация и продвижение сайта в поисковых системах 1743523334 Elesite CMS 60 http://webmasters.ru/forum/images/wm/misc/rss.png SEO форум вебмастеров Webmasters.ru http://webmasters.ru/forum Проектирование базы данных. Вопрос о связи таблиц? by uglik http://webmasters.ru/forum/showpost.php?p=725941 Sat, 23 Jan 2016 09:38:49 GMT Здравствуйте. Подскажите как правильно соединить таблицы в базах данных. Имеется таблица Users и 3 отдельные таблицы с профилями юзеров. Например: Визажист, парикмахер и стилист. У каждой группы хранятся разные данные с информацией. Как я понимаю нужно создать промежуточную таблицу для связи Users->Table->(profile_1, profile_2, profile_3) или проставлять ID каждой таблицы в основной таблице Users. При авторизация мы получаем запрос с хранящимся индикатором к какому профилю авторизовался пользователь. Table->(profile_1, profile_2, profile_3) или проставлять ID каждой таблицы в основной таблице Users. При авторизация мы получаем запрос с хранящимся индикатором к какому профилю авторизовался пользователь.]]> Проектирование базы данных. Вопрос о связи таблиц? by brainix http://webmasters.ru/forum/showpost.php?p=725944 Sat, 23 Jan 2016 10:06:14 GMT проставлять ID каждой таблицы в основной таблице Users. Не совсем. Лучше в юзерс сделать что юзер имеет один из трех типов: Визажист, парикмахер и стилист, конечно тип лучше писать циферкой :) Если юзер может быть нескольких типов сразу, то можно например так сделать: 122 или 221 где 122 значит что второй и третий тип присутствуют, а первый нет. Ну или через битовые маски, но с ними я дела не имел. Ну и в таблицах профилей просто указывать что он относиться к такому то пользователю. И если 1 пользователь с двумя специализациями, то все будет нормально, просто в двух таблицах будут строки ссылающиеся на пользователя из юзерс. Проектирование базы данных. Вопрос о связи таблиц? by uglik http://webmasters.ru/forum/showpost.php?p=726095 Sun, 24 Jan 2016 07:01:33 GMT brainix, Например если создать таблицу Users: id, email, password, usergroup (1,2,3), profile_id, created_at Получается нужно в profile_id подставлять id с разных 3 таблиц и группировать к какому профилю идет обращение через usergroup?? Я правильно понимаю? Проектирование базы данных. Вопрос о связи таблиц? by krupni http://webmasters.ru/forum/showpost.php?p=726099 Sun, 24 Jan 2016 08:13:26 GMT В таблицах Визажист, Парикмахер и Стилист нужно сделать поле user_id. Поле id в таблице user будет primary, а user_id в таблицах визажист и т.д. будет foreign. Проектирование базы данных. Вопрос о связи таблиц? by OKyJIucT http://webmasters.ru/forum/showpost.php?p=726106 Sun, 24 Jan 2016 08:48:49 GMT На мой взгляд, проще сделать одну таблицу под специальности, добавить там поле type ENUM(1,2,3), и нужные поля для каждой специальности (по возможности не плодить поля). Какого рода разная информация по каждой специальности хранится? Может ее можно обобщить при создании полей, если нет, то оставлять поля пустыми, если в данной специальности они не задействованы. Проще будет выбирать данные по пользователю и редактировать их. Ведь сущность одна, просто данные разные, зачем плодить под них таблицы. Проектирование базы данных. Вопрос о связи таблиц? by brainix http://webmasters.ru/forum/showpost.php?p=726112 Sun, 24 Jan 2016 09:08:01 GMT Например если создать таблицу Users: id, email, password, usergroup (1,2,3), profile_id, created_at Получается нужно в profile_id подставлять id с разных 3 таблиц и группировать к какому профилю идет обращение через usergroup?? Нет. В таблице "визажист" сделать, как сказали выше, поле user_id в которой ставить айди из таблицы юзерс. У вас один профиль пользователя может относится сразу к нескольким типам - Визажист, парикмахер и стилист? Проектирование базы данных. Вопрос о связи таблиц? by uglik http://webmasters.ru/forum/showpost.php?p=726423 Tue, 26 Jan 2016 03:19:58 GMT Какого рода разная информация по каждой специальности хранится? Может ее можно обобщить при создании полей, если нет, то оставлять поля пустыми, если в данной специальности они не задействованы. Проще будет выбирать данные по пользователю и редактировать их. Ведь сущность одна, просто данные разные, зачем плодить под них таблицы. У парикмахера будет полей с информацией примерно 10 и визажиста 5 и стилиста вообще только ФИО и контактные данные, но email и будет храниться в таблице юзерс как логин в системе для авторизации. Тогда может есть смысл вынести в таблицу юзерс поля first_name и last_name, но в таком случае для стилиста нет смысла создавать отдельную таблицу с профилем. Хотя если в будущем понадобиться расширить профиль для стилиста тогда косяк.