Ответы пользователя по тегу PostgreSQL
  • Как в postgresql хранить рабочие часы организации?

    copist
    @copist
    Empower people to give
    Хранение выбирается исходя из целей: расписание нужно только лишь показывать или по нему нужно искать.

    Если только показывать - то можно для любого расписания придумать замысловатую конструкцию в формате JSON, а можно текстом хранить, а можно и HTML.
    Если требуется искать, то нужно понимать - можно ли по этой структуре написать алгоритм поиска. Возможно будет эффективнее представить расписание как записи: в такой-то день недели с такого-то времени по такое-то время РАБОТАЕТ или наоборот НЕ РАБОТАЕТ

    CREATE table `workinghours` (
      `timefrom` unsigner integer COMMENT "Время начала", /*0 ... 2359 - перевод часов минут в целочисленный формат*/
      `timeto ` unsigner integer COMMENT "Время окончания", /* 0 ... 2359 */
      `weekday` unsigner integer COMMENT "День недели" /* { 1, 2, 3, 4, 5, 6, 7 } */
    );


    на случай, если расписание действует какой-то календарный период времени, необходимо ещё добавить пару свойств
    `datefrom` date COMMENT "Начало календарного периода",
    `dateto` date COMMENT "Окончание календарного периода",
    Ответ написан
    Комментировать
  • Какой подход выбрать для иерархической таблицы?

    copist
    @copist
    Empower people to give
    > Буду рад любым теориям
    Несколько вариантов:
    • Nested Sets
    • Parent-Child
    • Materialized Paths
    • Иерархические БД
    • Специальный синтаксис SQL-1999 для WITH recursive
    • Специальный синтаксис Oracle для START WITH ... CONNECT BY


    Ссылки:
    Ответ написан
    Комментировать
  • Каким алгоритмом (функцией PHP) лучше получить хэш строки для последующего сравнения по базе данных?

    copist
    @copist
    Empower people to give
    sha1 - там коллизий меньше, вычисляется не намного дольше md5, длина 40 байт

    Активно используется в протоколе BitTorrent и Git
    Ответ написан
    Комментировать