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

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Причём тут это к проектированию БД? Если ваша цена зависит от чего-то там сверхъестественного, то это слой бизнес-логики, который будет высчитывать цену в зависимости от каких-то параметров. В БД вы эту информацию только храните и всё

    Проектирование больше относится к тому, как правильно хранить данные и распределять между многими таблицами. Правильно спроектированная БД имеет своё отражение на объектах в используемом вами языке программирования, когда вы будете эти таблицы маппить в типы.

    Всё что дальше, это уже бизнес-логика

    UPD:
    Для этой задачи SKU (артикулы) могут быть не совсем подходящим решением, поскольку у вас динамическое ценообразование. По таблицам будет примерно следующая ситуация (Накидал на коленках):

    services:
     - id:uuid
     - name:varchar
     - description:varchar
    
    options:
     - id:uuid
     - name:varchar
     - price:float
    
    orders:
     - id:uuid
     - duration:integer
     - total_price:float
     - service_fk:uuid
    
    order_options:
     - order_fk:uuid
     - option:fk:uuid
    Ответ написан
    2 комментария
  • Как лучше всего хранить данные о группах в бд?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Вот такой вариант есть

    task
        id:guid unique
    
    groups
        id:guid unique
        task_fk:guid <--
    
    manager:
        id:guid unique
        group_fk:guid unique
    
    worker
        id:guid unique
        group_fk:guid <--


    Обратите внимание на строку, где указана стрелочка. Отсутствие ключевого слова unique даёт возможность нескольким записям в этой таблице быть связанным с другой таблицей (groups) либо, другими словами, связь one-to-many. Наличие unique в таблице managers явно указывает, что только один менеджер может быть привязан в конкретной группе, другими словами, это связь one-to-one, где внешний ключ (foreign key) находится в таблице managers.

    Группы нужно формировать из 1 управляющего и из 1-3 рабочих.

    Это уже часть бизнес-логики, это не имеет отношения к проектирования БД
    Ответ написан
  • Хорошая ли идея создавать БД на стороне клиентской части (фронтенда)?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Я это ранее хорошо описал в ответе на этот вопрос. Вкратце, всё что находится на стороне клиента доступно пользователю. Соответственно, пользователь сможет напрямую вмешиваться в работу этой части веб-приложения. А это значит, что недобросовестный пользователь может поломать валидацию, запросы и другие вещи. По этому, это нужно размещать на сервере, к которому пользователь не имеет прямого доступа. Соответственно именно сервер занимается обработкой запроса, валидациями и запросами в БД
    Ответ написан
  • Почему при установке Sequelize, не устанавливается pgAdmin?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Попробуйте поставить напрямую из официального сайта через installer
    Ответ написан
    Комментировать
  • Где хранить логотип веб-сайта?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Ответ оказался достаточно специфический...

    Оказывается, логотип нужно хранить в БД в байтовом виде в таблице с ЮЗЕРАМИ, поскольку логотип мало весит и будет постоянно актуален. У меня всё. Спасибо всем, кто предложил руку к решению этой головоломки
    Ответ написан
    5 комментариев