Инструменты пользователя

Инструменты сайта


lss-server-php:db-datastructure-postgresql

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
lss-server-php:db-datastructure-postgresql [2026/04/28 12:15] – [Создание и инициализация системных таблиц] madminlss-server-php:db-datastructure-postgresql [2026/04/28 12:23] (текущий) – [важные замечания] madmin
Строка 15: Строка 15:
 Для их создания и корректной начальной инициализации служат скрипты **pgsql-systable-create.sql** и **pgsql-systable-init.sql**, расположенные в папке **/sql/init** шаблона LSS проекта. Для их создания и корректной начальной инициализации служат скрипты **pgsql-systable-create.sql** и **pgsql-systable-init.sql**, расположенные в папке **/sql/init** шаблона LSS проекта.
  
-Этот скрипт необходимо прогнать на пустой БД.+Эти скрипты необходимо последовательно прогнать на пустой БД.
  
 ==== содержимое скрипта создания системных таблиц ==== ==== содержимое скрипта создания системных таблиц ====
Строка 365: Строка 365:
     * на примере таблицы **machinerepair**, объявление **каскадной** ссылки: <code>"machineid" bigint references "machine" on delete cascade deferrable initially deferred</code> Объявление **restrict** ссылки: <code>"repairid" bigint references "repair" deferrable initially deferred</code> у restrict ссылки никаких дополнительных описаний на **on delete** не пишем, это позволяет отнести проверку на конец транзакции     * на примере таблицы **machinerepair**, объявление **каскадной** ссылки: <code>"machineid" bigint references "machine" on delete cascade deferrable initially deferred</code> Объявление **restrict** ссылки: <code>"repairid" bigint references "repair" deferrable initially deferred</code> у restrict ссылки никаких дополнительных описаний на **on delete** не пишем, это позволяет отнести проверку на конец транзакции
     * по каждой ссылке делаем индекс, именуем его как **idx_<имя таблицы>_<имя поля>**     * по каждой ссылке делаем индекс, именуем его как **idx_<имя таблицы>_<имя поля>**
 +  * соглашения на объявление полей **datetime**:
 +    * не используем часовые пояса
 +    * обычно поля для хранения даты и времени nullable
 +<code>
 +"datetime1" timestamp,
 +"datetime2" timestamp default now()
 +</code>
   * соглашения на **nullable** полей:   * соглашения на **nullable** полей:
     * если у поля признак **not null**, то должно быть объявление **default**     * если у поля признак **not null**, то должно быть объявление **default**
lss-server-php/db-datastructure-postgresql.1777367716.txt.gz · Последнее изменение: 2026/04/28 12:15 — madmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki