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

    @aynur_safin
    Как выполнить SELECT а потом DELETE в одном запросе?

    Чтобы выполнить SELECT, а потом DELETE в одном запросе, нужно поместить их в процедуру.
    Ответ написан
    Комментировать
  • Как подредактировать запрос SQL?

    @aynur_safin
    Используйте UNION
    https://support.office.com/ru-ru/article/%D0%9E%D0...

    SELECT [Системные блоки].[ФИО], [Системные блоки].[Модель], [Системные блоки].[Номер]
    FROM [Системные блоки]
    WHERE [Системные блоки].[ФИО]="Сотрудник 1"
    UNION ALL
    SELECT Мониторы.[ФИО], Мониторы.[Модель], Мониторы.[Номер]
    FROM Мониторы
    WHERE Мониторы.[ФИО]="Сотрудник 1"
    Ответ написан
    3 комментария
  • Как правильно сделать статусы для заказа в бд?

    @aynur_safin
    (оплачен, доставка, не оплачен)

    2) Сделать для каждого статуса свое булеан поле и когда статус меняется, обнулять другие поля


    Зачем обнулять другие поля, разве они противоречат друг другу?
    (ну кроме "не_оплачен/оплачен", но это должно быть одно поле).
    Итого два булевых поля: оплачен и доставка.
    Если нужен один статус для интерфейса из этих (не оплачен -> оплачен -> доставка),
    то можно сделать дополнительное динамическое поле (без записи в БД):

    статус = !оплачен_ст ? "Не оплачен" :  !доставка_ст ? "Оплачен" : "Доставка";


    Ну или сложнее, если возможны статусы типа "Не оплачен / Доставка", например при постоплате.
    Т.е. при этом, Вы сможете гибко менять логику программы впоследствии, комбинируя условия статусов, сколько бы их не было.
    Ответ написан
    Комментировать
  • Как лучше реализовывать баланс?

    @aynur_safin
    Или просто создать колонку balance и все?

    Так делать не рекомендую, может возникнуть ситуация, когда обновление записи может быть производится из двух потоков, например пользователь пополняет баланс, а в это время сервис списывает с него, и одна из операций не выполнится, т.к. запись будет заблокирована. Поэтому, лучше определять баланс сложением операций, но не за весь период, а например хранить остатки на начало месяца и прибавлять к нему обороты с начала месяца. А оперативный баланс, чисто для отображения в интерфейсе, можно держать в кэше и обновлять при добавлении операций.
    Ответ написан
    Комментировать