Имеется база для пользователей (родители и дети):
- id пользователя
- Фамилия
- Имя
- Номер телефона
- Номер ребенка/родителя
- Дата регистрации
И таблица координат:
- Id координаты
- Id пользователя
- Широта
- Долгота
- Дата
Вот никак не могу понять как привязать родителя с ребенком, то есть регистрируется родитель, а потом ребенок. И в этом случае будут отправляться координаты ребенка родителю, а родителя ребенку. Я думаю создать еще одну таблицу для привязки, типа этого:
- id родителя
- id ребенка
то есть, если родитель зарегистрировался и ввел номер ребенка, сюда вставляется его ID
, а поле для ID ребенка
будет пусто пока ребенок не зарегистрируется под своим номером и не совпадет его номер с тем, который ввел родитель. И наоборот если первым зарегался ребенок......
Вопрос: Будет ли правильно такая форма привязки или неправильно я все делаю, подскажите?
UPD: если неправильно сформулировал свои мысли, то к примеру могу привести соц. сети. Как пользователи отправляют запрос о дружбе другому пользователю и другой принимает дружбу? То есть что именно в базе происходит в этом случае?
Один из вариантов проектирования такой структуры может быть таким.
Пользователи
- id пользователя
- Фамилия
- Имя
- Номер телефона
- Дата регистрации
Кординаты_пользователей
- Id координаты
- Id пользователя
- Широта
- Долгота
- Дата
Родственные_отношения
- пользователь_1
- пользователь_2
- тип отношения: отец, мать, сын, дочь, бабушка и т.п
- дата запроса
- дата ответа
- статус запроса: в ожидании, отклонён, подтверждён
Случай 1. Пользователь одиночка (родитель или ребёнок)
Случай 2. Пользователь родитель
Если их нет, то посылаем запрос на подтверждение родственных связей.
Пользователь А получает и подтверждает запрос.
При вышеупомянутой схеме отношение Родственные_отношения может выглядеть так (без дат и статуса):
Пользователь_1 | Пользователь_2 | Тип |
===============|================|======|
Адам | Каин | отец |
Ева | Авель | мать |
Сиф | Адам | сын |
Енос | Сиф | сын |
Запросы на выборку детей может иметь такой вид:
SELECT Пользователь_1 FROM Родственные_отношения
WHERE
Пользователь_2 = "Адам"
Тип IN ("сын", "дочь")
UNION
SELECT Пользователь_2 FROM Родственные_отношения
WHERE
Пользователь_1 = "Адам"
Тип = "отец"
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется таблица book в которой около 50 записейПоля таблицы id(int),name(varchar),path(text),lang(int, value = 1,2,3)
Есть mysql таблица id | username | number | created_at 1 | valera | 50 | 2017-03-19
Выбирает из базы только первую строкуЧто может быть не так?