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

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


lss-server-php:db-datastructure-postgresql

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
lss-server-php:db-datastructure-postgresql [2026/03/31 12:40] – [содержимое скрипта] madminlss-server-php:db-datastructure-postgresql [2026/04/28 12:23] (текущий) – [важные замечания] madmin
Строка 13: Строка 13:
   * процедура удаления view **cmd_dropviews** - позволяет удалить view из БД, мешающие внесению изменений в структуру таблицы.   * процедура удаления view **cmd_dropviews** - позволяет удалить view из БД, мешающие внесению изменений в структуру таблицы.
  
-Для их создания и корректной начальной инициализации служит скрипт pgsql-systable.sql, расположенный в папке /sql/init шаблона LSS проекта.+Для их создания и корректной начальной инициализации служат скрипты **pgsql-systable-create.sql** и **pgsql-systable-init.sql**, расположенные в папке **/sql/init** шаблона LSS проекта.
  
-Этот скрипт необходимо прогнать на пустой БД.+Эти скрипты необходимо последовательно прогнать на пустой БД.
  
 ==== содержимое скрипта создания системных таблиц ==== ==== содержимое скрипта создания системных таблиц ====
Строка 177: Строка 177:
 -- автоинкрементный генератор для  -- автоинкрементный генератор для 
 create sequence sysappend_id_seq AS bigint; create sequence sysappend_id_seq AS bigint;
 +select setval('sysappend_id_seq', 100000);
  
 -- хранимая процедура удаления view -- хранимая процедура удаления view
Строка 221: Строка 222:
 $$; $$;
 </code> </code>
 +==== содержимое скрипта инициализации содержимого системных таблиц ====
 <code> <code>
 -- Инициализация системных таблиц для сервера PostgreSql, для создания служит скрипт systable-create.sql -- Инициализация системных таблиц для сервера PostgreSql, для создания служит скрипт systable-create.sql
Строка 241: Строка 242:
  
 select setval('sysfieldtype_id_seq', GREATEST(1,(select max(id) from "sysfieldtype"))); select setval('sysfieldtype_id_seq', GREATEST(1,(select max(id) from "sysfieldtype")));
- 
--- автоинкрементный генератор для  
-select setval('sysappend_id_seq', 100000); 
  
 insert into "sysconfig" ("code", "val") insert into "sysconfig" ("code", "val")
Строка 367: Строка 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.1774950011.txt.gz · Последнее изменение: 2026/03/31 12:40 — madmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki