Ответы пользователя по тегу Базы данных
  • Нужен ли индекс или нет?

    @pihel
    Sql, Oracle, pl/sql, BI, ETL, php, olap
    Если преобладают чтения над записью, то 2 вариант предпочтительней.
    Если записи вставляются пачками и изредка, то можно отключать индекс , а потом их ребилдить.
    Если запись преобладает над чтением, то возможно индексы будут только мешать.

    Еще как вариант можно hash партиционировать по uid. Тогда не потеряется скорость ни чтения, ни записи.
    Ответ написан
    Комментировать
  • Как упростить запрос SQL?

    @pihel
    Sql, Oracle, pl/sql, BI, ETL, php, olap
    Можно сократить на 1 sql запрос
    UPDATE table SET count+=1 WHERE ( param1, param2, param3 ) IN( SELECT param1, param2, param3 FROM table WHERE status=@status ) and status=0;
    DELETE FROM table  WHERE ( param1, param2, param3 ) IN( SELECT param1, param2, param3 FROM table WHERE status=@status ) and status=@status;
    Ответ написан
  • Как правильно организовать базу данных учета перевода средств между счетами?

    @pihel
    Sql, Oracle, pl/sql, BI, ETL, php, olap
    Обычно операции - это справочник.
    Записи можно генерировать документами, документ на приход, документ на расход и документ на перевод, который при проводке генерирует 2 записи приход и расход.
    В справочнике операций делается ссылка на документ из которого в случае чего можно вытащить данные по событию проводки (пользователь, дата и т.д. - своего рода лог операций). У документа можно сделать обратный маршрут, который бы удалял операции в справочнике.
    Ответ написан
    Комментировать
  • Как сделать дубляж записи в таблице?

    @pihel
    Sql, Oracle, pl/sql, BI, ETL, php, olap
    Нужно поменять первичный ключ таблицы на суррогатный по последовательности.
    Тогда никаких ограничений на записи не будет.
    Ответ написан
    Комментировать