Проектирование базы данных. Вопрос о связи таблиц? - Webmasters.ru - RSS
http://webmasters.ru/forum/showthread.php?t=72359
SEO форум вебмастеров - Поисковые системы, оптимизация, раскрутка сайта, оптимизация и продвижение сайта в поисковых системах1743523334Elesite CMS60http://webmasters.ru/forum/images/wm/misc/rss.pngSEO форум вебмастеров 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 GMTbrainix,
Например если создать таблицу 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, но в таком случае для стилиста нет смысла создавать отдельную таблицу с профилем. Хотя если в будущем понадобиться расширить профиль для стилиста тогда косяк.