@Myshka

Дадите совет по построению БД?

Привет :3

Есть задача - следить за изменением состояния друзей в Вк(записывать кто выбыл, кого добавили).
У меня, на данный момент, вот такие четыре не хитрые таблицы
Как бы вы переделали их, чтоб было, так сказать пА-люЦки, со всякими ключами, связями и т.д.?

:3
8fb58057f75642a19a06d0fa92edc575.png
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
У вас избыточность данных.
id, first_name, last_name,sex,city - почти не будут меняться. Их в одну таблицу friends.
А в других останется только id записи и ссылка personid на friends
Ответ написан
@d-stream
Готовые решения - не подаю, но...
Персона, если не заморачиваться со сменами фамилии, пола и т.п. - по сути одна, а эта персона во времени может приходить, уходить и т.п.

Вот и напрашивается одна табличка с первичным ключом person_id и горой данных типа ФИО и т.п., а вторая слегка упрощенная табличка - этакая история (хронология) событий:
датавремя, персона (person_id), действие (например int или enum)

соответственно если взять первую запись по хронологии для конкретной персоны - увидим когда персона впервые появилась, по действию последней записи персоны - понимаем ее статус

ну и всяческие "сколько в прошлом месяце пришло и сколько ушло" или сколько было френдов 143 дня назад" запросы лепятся в одну строчку... точнее вру, последний получится чуть посложнее
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы