lss-server-php:db-datastructure-sqlite
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| lss-server-php:db-datastructure-sqlite [2026/06/15 16:10] – [содержимое скрипта инициализации содержимого системных таблиц] madmin | lss-server-php:db-datastructure-sqlite [2026/06/15 16:28] (текущий) – [SQlite - требования к структуре БД] madmin | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== SQlite - требования к структуре БД ====== | ====== SQlite - требования к структуре БД ====== | ||
| + | В настоящий момент полноценно реализована поддержка серверов PostgreSql и SQlite. В этом документе описаны требования к **SQlite**, а для PostgreSql требования можно посмотреть здесь: [[db-datastructure-postgresql]] | ||
| + | |||
| ===== Создание и инициализация системных таблиц ===== | ===== Создание и инициализация системных таблиц ===== | ||
| Для корректной работы LSS сервера в базе данных должны присутствовать системные таблицы: | Для корректной работы LSS сервера в базе данных должны присутствовать системные таблицы: | ||
| Строка 200: | Строка 202: | ||
| PRAGMA foreign_keys = ON; | PRAGMA foreign_keys = ON; | ||
| </ | </ | ||
| + | ===== Создание структуры БД для пользовательских таблиц ===== | ||
| + | Вот пример скрипта создания пользовательских таблиц из тестового примера: | ||
| + | ==== содержимое скрипта ==== | ||
| + | < | ||
| + | -- роль доступа | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create unique index " | ||
| + | create unique index " | ||
| + | |||
| + | -- пользователь системы | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create index " | ||
| + | create unique index " | ||
| + | |||
| + | -- цех | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create unique index " | ||
| + | |||
| + | -- участок | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create index " | ||
| + | create unique index " | ||
| + | |||
| + | -- тип оборудования | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create unique index " | ||
| + | |||
| + | -- состояние оборудования | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create unique index " | ||
| + | |||
| + | -- вид ремонта | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create unique index " | ||
| + | |||
| + | -- паспорт оборудования | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create index " | ||
| + | create index " | ||
| + | create index " | ||
| + | create index " | ||
| + | create unique index " | ||
| + | |||
| + | -- ремонт оборудования | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create index " | ||
| + | create index " | ||
| + | |||
| + | -- нормы ремонтов | ||
| + | create table " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ); | ||
| + | create index " | ||
| + | create index " | ||
| + | create unique index " | ||
| + | </ | ||
| + | ==== важные замечания ==== | ||
| + | * имена таблиц и полей - маленькие буквы английского алфавита или цифры | ||
| + | * соглашения на уникальный идентификатор таблицы: | ||
| + | * у каждой таблицы должен быть уникальный идентификатор, | ||
| + | * обычно он автоинкрементный, | ||
| + | * соглашения на объявление ссылок: | ||
| + | * ссылка должна иметь тип, соответствующий типу **id** таблицы, | ||
| + | * для наглядности имя ссылки в конце содержит сочетание символов ' | ||
| + | * на уровне базы данных ссылки объявляются как **nullable** | ||
| + | * на примере таблицы **machinerepair**, | ||
| + | * по каждой ссылке делаем индекс, | ||
| + | * соглашения на объявление полей **datetime**: | ||
| + | * обычно поля для хранения даты и времени nullable, без привязки к часовым поясам | ||
| + | < | ||
| + | " | ||
| + | " | ||
| + | </ | ||
| + | * соглашения на **nullable** полей: | ||
| + | * если у поля признак **not null**, то должно быть объявление **default** | ||
| + | * для типов: число, строка, | ||
| + | * для типов: ссылка, | ||
| + | * проверка уникальности реализуется уникальным индексом, | ||
| + | |||
| + | |||
lss-server-php/db-datastructure-sqlite.1781529029.txt.gz · Последнее изменение: 2026/06/15 16:10 — madmin
