Ответы пользователя по тегу SQL
  • Как проектировать базу для партионного учета товаров?

    @res2001
    Developer, ex-admin
    1. Справочник товаров - содержит полное описание товаров;
    2.Приходные документы - содержит общие поля для приходных документов;
    2.1.Расшифровка приходных документов - содержит товары в приходном документе, увязывается с таблицей 2 и 1.
    3.Расходные документы - содержит общие поля для расходных документов;
    3.1.Расшифровка расходных документов - содержит товары в расходном документе, увязывается с таблицей 3 и 1.

    Для получения остатков из таблицы 2.1 вычитаем 3.1.
    Рекомендую внедрить еще такое понятие как "закрытие дня" :). В этом случае нужно завести еще одну таблицу остатков товаров, куда записывать остатки по каждому товару на дату закрытия.
    Если не делать закрытие дня, то рано или поздно столкнешься с ситуацией когда запрос получения остатков будет исполнятся неприемлемо долго. Таблица с остатками позволит намного сократить время получения остатка по товарам.

    Остальные справочники по необходимости.
    Ответ написан
    Комментировать
  • Как выбрать 2 одинаковых значения?

    @res2001
    Developer, ex-admin
    select t1.*, t2.*
    from table1 t1
    join table2 t2 on t2.id=t1.table2id
    Ответ написан
  • Как выполнить запрос с условием?

    @res2001
    Developer, ex-admin
    select q.id from qw as q
    join personality as p on p.id=q.id
    Ответ написан
    Комментировать
  • Зачем prepared statements? Почему не экранирование?

    @res2001
    Developer, ex-admin
    Вставлю свои 5 копеек.
    Не знаю как с MySQL, а в MS SQL и Oracle prepared statements подставляются в запрос в ядре базы данных, а не в какой-то левой библиотеке, непонятно кем написанной и не известно на сколько криво используемой.
    Кому как не самой СУБД лучше всего знать что и как экранировать? К тому же СУБД воспринимает prepared statements именно как параметры запроса, они никогда не смогут быть выполнены.
    Как-то так, имхо.
    Ответ написан
    Комментировать