Ответы пользователя по тегу SQL
  • Как спроектировать БД с переменным количеством параметров?

    DimonSmart
    @DimonSmart
    Kaspersky Lab Developer
    Я рекомендую посмотреть в сторону EAV. Но!!! Смотреть очень внимательно. Там есть очень большая куча плюшек и примерно такая же куча ....хм.... не плюшек. Выбирать только вам.
    И добавлю сюда ссылку на очень похожее обсуждение:
    Как хранить абстрактные модели данных в реляционных БД?

    Кстати, постарайтесь почёте сформулировать ваш вопрос. Возможно, если этих самый неизвестных параметров будет немного - то лучшим способом будет простое расширение табличек.
    В сторону EAV надо смотреть если у вас количество и сами параметры могут сильно отличаться от объекта к объекту. И сами эти параметры могут появляться стихийно по желанию ваших пользователей.
    Так же очень рекомендую рассмотреть компромиссный вариант, в котором у вас будет использоваться классическая структура полей и таблиц. И где-то рядом к ней будет пристёгнута структура EAV для экспериментов с полями. В этом случае основная нагрузка будет на классические структуры а все эксперименты с дополнительными полями будут по сути отдельно.
    В случае если какое-то из экспериментальных дополнительных полей в последствии станет очень нужным и всем необходимым - то никто не мешает зарефакторить структуру БД и перенести это поле в основные таблицы....
    Ответ написан
    Комментировать
  • Селекты из таблицы на 5 млн строк. Если разбить её на 100 таблиц - будет выигрыш в производительности?

    DimonSmart
    @DimonSmart
    Kaspersky Lab Developer
    Самое важное в любой БД - это структурная оптимизация. Возможно стоит перепроектировать таблицу и посмотреть в сторону классической нормализации. Полностью согласен с теми, кто очень сомневается в номенклатуре в 5 млн. записей.
    Классика - это одно наименование в основной таблице а цвета, размеры и т.п в другой. А в прайсе и складе - комбинации. Кстати, при классическом подходе у вас фильтры естественным образом сами разложаться на разные таблицы.
    Ответ написан
  • Сайт с упражнениями по SQL?

    DimonSmart
    @DimonSmart
    Kaspersky Lab Developer
    Полностью поддерживаю вариант sql-ex.ru
    Там есть и схемы баз и тестовые данные и очень неплохие обсуждения по всем задачкам.
    Задачки идут по возрастанию сложности. Есть и просто SQL есть и задачки на оптимизацию и скорость выполнения запросов. И описание способов решения приложу: www.sql-tutorial.ru/sqlbook/ru
    Ответ написан
    Комментировать
  • Как хранить абстрактные модели данных в реляционных БД?

    DimonSmart
    @DimonSmart
    Kaspersky Lab Developer
    Есть классический антипаттерн, EAV Entity Attribute Value
    www.sql.ru/forum/1110351/esli-nuzhna-gibkaya-shema...
    С академической точки зрения очень интересный принцип хранения.
    НО есть много НО

    На хабре была очень подробная статья с подробностями работы с EAV базами. На хабре была в кэше гугла ещё есть: https://webcache.googleusercontent.com/search?q=ca...

    Дополню ответ очень хорошей и просто обязательной к прочтению статьёй с довольно подробным и хорошим описанием теории построения EAV структур. (Кстати в самой статье слово EAV не используется) ООП в РСУБД
    Ответ написан
    3 комментария