Ответы пользователя по тегу Базы данных
  • Как правильнее заносить и хранить большой объем данных в бд?

    darthunix
    @darthunix
    Знаю PostgreSQL, Ubuntu, DICOM и медицину.
    Я бы использовал PostgreSQL, потому что знаю его) А детальнее - вначале создал бы собственный тип, описывающий цену в момент времени, состоящий из времени и цены. Потом просто создал бы таблицу товаров, в которой бы была колонка с массивом этого нового типа цен в момент времени. И при каждой новой загрузке информации я бы раскладывал для подходящего товара данные о времени и цене в этот массив. Ну и добавил бы первичный ключ по товарам и gin индекс по массиву временных точек цен. По идее в таком виде таблица не станет очень большой и вы сохраните возможность быстро проводить агрегацию по данным. Ну и данные будет легко шардировать, если потребуется.
    Ответ написан
    Комментировать
  • Какие есть варианты разработки базы данных?

    darthunix
    @darthunix
    Знаю PostgreSQL, Ubuntu, DICOM и медицину.
    Я рекомендую использовать pyrseas. В нем dbtoyaml парсит схему базы с поддержкой всех самобытных фишек PostgreSQL в yaml файл, который вы помещаете в систему контроля версий. В отличие от SQL дампа с yaml схемой легко работать и осуществлять слияния в ветках. Я использую PyCharm с подсветкой yaml синтаксиса для этого. Так же yamltodb может сравнить yaml файл с базой и сформировать SQL миграцию. Я этой штукой уже год пользуюсь на работе, все остальные решения рядом не стояли.
    Ответ написан
    Комментировать
  • Как спроектировать базу данных многопользовательских списков?

    darthunix
    @darthunix
    Знаю PostgreSQL, Ubuntu, DICOM и медицину.
    Про второй вариант вообще забудьте, это какой-то адский антипаттерн. Насчёт первого варианта - не волнуйтесь про размер, индексы спасут вас. А вот когда они перестанут вас спасать, вы воспользуетесь шардингом... но к этому моменту вы будете знать про большие данные больше всех в этом обсуждении)) Я бы создал таблицу с пользователями, таблицу с задачами и таблицу соответствия пользователей и задач с составным первичным ключом по этим двум колонкам. И не забыл бы про внешние ключи. Индексы бы делал в обеих таблицах типа автоинкрементируемого bigint (не знаю в терминах mysql) для более компактных и быстрых индексов по сравнению с guid. Если бы это был postgresql, то можно было бы таблицу трансляций сделать вида (пользователь, массив задач), но это плохая практика в плане согласованности данных.
    Ответ написан
    Комментировать