Задать вопрос
Pjeroo
@Pjeroo
Веб-разработчик

Как лучше спроектировать базу для сайта знакомств?

Есть задача, которая описана вот тут - yiiframework.ru/forum/viewtopic.php?t=10771 в теме есть решение сделать что-то key -> value. Насколько хорошее это решение? Как мне кажется, так это не очень круто выйдет. Поиск и фильтрация возможны только если по двум полям искать, тогда на оба поля надо будет индексы создавать, а так как таблица будет огромная из-за лютой денормализации, то вставка будет очень долго происходить.
Как считаете?

upd. По ссылке не мой вопрос, там просто пример того что нужно сделать и описание проблемы, так же там решение key -> value, мое же решение это создать относительно большую таблицу например profile (кого ищу, сколько лет, цель знакомства, семейное положение ... итд), для множественного выбора (таки пунктов мало) создавать отдельную табличку

upd2. Проблема еще в том, что почти каждый пункт в анкете - это не просто выбор из представленных, а еще и возможность ввести что-то свое.
  • Вопрос задан
  • 1074 просмотра
Подписаться 5 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 4
2ord
@2ord
Посмотрите слайды Introduction to Graph Databases.
Надеюсь, это разъяснит вам как лучше спроектировать работу с БД.
Ответ написан
Комментировать
newross
@newross
Product owner
Прежде чем делать выводы, надо определиться с размерами аудитории. Если это 5000-10000 человек? Чему там тормозить тогда?

К вопросу денормализации - это один из базовых приемов HiLoad.
Ответ написан
@KonstV
В любом хайлоад по моему реляционную ДБ делают и не городят заборы. Потом оптимизируйте по ситуации.
Ответ написан
Комментировать
@Djadka
Web developer
Всё зависит от количество и обьёма данных, если у вас 10 к людей то данных то там будет на пару гигов, там и о денормализации особо даже думать не стоит можно городить джойныи тюнить мускул под него и работает шустро, если правильно настройки сделать. Если же перевалит какая-нибудь таблица за несколько гигов, то стоит уже задуматься о денормализации, по личному опыту не стоит тратить время на оптимизациию, потому что она может не понадобиться, а узкие места появляются там где даже из и не видно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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