Еще больше запутался. Так одну таблицу профилей делать или 2?
Вариант первый:
Пользователи:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер записи',
`username` varchar(255) NOT NULL COMMENT 'Имя пользователя',
`email` varchar(255) NOT NULL COMMENT 'Электропочта',
`password` varchar(255) NOT NULL COMMENT 'Пароль',
PRIMARY KEY (`id`)
)
Группы пользователей:
CREATE TABLE `groups` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер записи',
`name` varchar(255) NOT NULL COMMENT 'Имя группы пользователей',
PRIMARY KEY (`id`)
)
Наборы групп, в которую входит каждый пользователь
CREATE TABLE `usergroups` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер записи',
`user_id` int(11) NOT NULL COMMENT 'ID пользователя',
`group_id` int(11) NOT NULL COMMENT 'ID группы пользователей',
PRIMARY KEY (`id`)
)
И одна таблица с профилями:
CREATE TABLE `profile` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер записи',
`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер записи',
`avatar` varchar(255) NOT NULL COMMENT 'Аватарка',
`firstname` varchar(255) NOT NULL COMMENT 'Имя пользователя',
`lastname` varchar(255) NOT NULL COMMENT 'Фамилия пользователя',
`about` text COMMENT 'О себе',
`location_id` int(11) NOT NULL COMMENT 'Индификатор города',
`haircut_id` int(11) NOT NULL COMMENT 'Индификатор стрижки',
`price` decimal(10,2) NOT NULL COMMENT 'Индификатор стрижки',
`contacts_id` int(11) NOT NULL COMMENT 'Индификатор контакта',
`portfolio_id` int(11) NOT NULL COMMENT 'Индификатор портфолио',
`reviews_id` int(11) NOT NULL COMMENT 'Индификатор отзыва',
PRIMARY KEY (`id`)
)
В таком случае будет много полей пустых, но многие поля NOT NULL с индикаторами других таблиц с данными. Как в данной ситуации быть.
Вариант второй:
Тоже самое только 2 таблицы профилей:
Парикмахеры
CREATE TABLE `profile_hairdresser` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер записи',
`user_id` int(11) NOT NULL COMMENT 'Номер записи',
`avatar` varchar(255) NOT NULL COMMENT 'Аватарка',
`firstname` varchar(255) NOT NULL COMMENT 'Имя пользователя',
`lastname` varchar(255) NOT NULL COMMENT 'Фамилия пользователя',
`about` text COMMENT 'О себе',
`location_id` int(11) NOT NULL COMMENT 'Индификатор города',
`haircut_id` int(11) NOT NULL COMMENT 'Индификатор стрижки',
`price` decimal(10,2) NOT NULL COMMENT 'Индификатор стрижки',
`contacts_id` int(11) NOT NULL COMMENT 'Индификатор контакта',
`portfolio_id` int(11) NOT NULL COMMENT 'Индификатор портфолио',
`reviews_id` int(11) NOT NULL COMMENT 'Индификатор отзыва',
PRIMARY KEY (`id`)
)
Клиенты
CREATE TABLE `profile_client` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер записи',
`user_id` int(11) NOT NULL COMMENT 'Номер записи',
`avatar` varchar(255) NOT NULL COMMENT 'Аватарка',
`firstname` varchar(255) NOT NULL COMMENT 'Имя пользователя',
`lastname` varchar(255) NOT NULL COMMENT 'Фамилия пользователя',
PRIMARY KEY (`id`)
)
В данной ситуации я тогда не понимаю как связать профили с юзерами через связь многие ко многим. Если не сложно вышлите пример.
Промежуточная таблица получаеться типа:
CREATE TABLE `profile_client_hairdresser` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Номер записи',
`user_id` int(11) NOT NULL COMMENT 'ID пользователя',
`profile_id` int(11) NOT NULL COMMENT 'ID профиля пользователей',
PRIMARY KEY (`id`)
)
НО профиля у нас 2!