Відмінності між версіями «База даних»
Surycat (обговорення • внесок) |
Surycat (обговорення • внесок) |
||
Рядок 19: | Рядок 19: | ||
''<small>На даний момент даний список вимог є орієнтовним та неповним, і потребує уточнень та доповнень</small>'' | ''<small>На даний момент даний список вимог є орієнтовним та неповним, і потребує уточнень та доповнень</small>'' | ||
− | '''1. Оформлення таблиць''' | + | '''1. Оформлення таблиць'''<br /> |
− | + | ||
1.1 Вимоги до назви таблиці<br /> | 1.1 Вимоги до назви таблиці<br /> | ||
Назва таблиці повинна задовільняти такій формі: | Назва таблиці повинна задовільняти такій формі: | ||
Рядок 26: | Рядок 25: | ||
[префікс]_[TYPE_][назва_об'єкту_що_зберігається_англійською_мовою]S | [префікс]_[TYPE_][назва_об'єкту_що_зберігається_англійською_мовою]S | ||
− | Для звичайних таблиць [префікс] - це велика англійська літера «Т», для таблиць, у яких зберігаються статичні дані - «TS». | + | Для звичайних таблиць <code>[префікс]</code> - це велика англійська літера «Т», для таблиць, у яких зберігаються статичні дані - «TS». |
− | Слово [TYPE_] не є обов'язковим, і вказує на те, що в даній таблиці зберігається перелік типів (видів) якогось об'єкта. | + | Слово <code>[TYPE_]</code> не є обов'язковим, і вказує на те, що в даній таблиці зберігається перелік типів (видів) якогось об'єкта. |
− | [назва_об'єкту_що_зберігається_англійською_мовою] — назва в називному відмінку та однині об'єктів, що зберігаються англійською мовою. Якщо немає слова — відповідника, то пишеться сполучення англійських слів через нижнє підкреслення. У випадку, коли сполучення слів є надто довгим, допускаються скорочення, але тоді даного скорочення необхідно дотримуватись по всій базі даних. | + | <code>[назва_об'єкту_що_зберігається_англійською_мовою]</code> — назва в називному відмінку та однині об'єктів, що зберігаються англійською мовою. Якщо немає слова — відповідника, то пишеться сполучення англійських слів через нижнє підкреслення. У випадку, коли сполучення слів є надто довгим, допускаються скорочення, але тоді даного скорочення необхідно дотримуватись по всій базі даних. |
В кінці назви таблиці (або в деяких випадках після слова-іменника в назві об'єкта англійською мовою) ставиться літера «S», яка вказує на те, що в даній таблиці зберігається множина об'єктів. | В кінці назви таблиці (або в деяких випадках після слова-іменника в назві об'єкта англійською мовою) ставиться літера «S», яка вказує на те, що в даній таблиці зберігається множина об'єктів. | ||
Рядок 34: | Рядок 33: | ||
''Приклади:''<br /> | ''Приклади:''<br /> | ||
− | * Нехай ми маємо таблицю, у якій зберігаються товари. Оскільки товар | + | * Нехай ми маємо таблицю, у якій зберігаються товари. Оскільки товар англійською буде nomen, то наша таблиця матиме назву <code>T_NOMENS</code>. |
* Таблиця, що містить перелік типів документів: TS_TYPE_DOCUMENTS | * Таблиця, що містить перелік типів документів: TS_TYPE_DOCUMENTS | ||
* Таблиця, що містить налаштування: TS_CONFIGS | * Таблиця, що містить налаштування: TS_CONFIGS | ||
Рядок 40: | Рядок 39: | ||
1.2. Вимоги до опису таблиці<br /> | 1.2. Вимоги до опису таблиці<br /> | ||
− | Кожна таблиця повинна бути описана у | + | Кожна таблиця повинна бути описана у відповідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i є відповідна закладка для внесення опису таблиці. |
1.3. Вимоги до назв полів | 1.3. Вимоги до назв полів | ||
Рядок 51: | Рядок 50: | ||
Для рядкового типу даних повинно використовуватись тип VARCHAR(N), оскільки він займає набагато менше трафіку при пересиланні даних із БД до користувача. | Для рядкового типу даних повинно використовуватись тип VARCHAR(N), оскільки він займає набагато менше трафіку при пересиланні даних із БД до користувача. | ||
− | '''2. Вимоги до оформлення процедур''' | + | '''2. Вимоги до оформлення процедур'''<br /> |
2.1. Вимоги до назви процедури<br /> | 2.1. Вимоги до назви процедури<br /> | ||
В загальному випадку назва процедури повинна задовільняти такій формі: | В загальному випадку назва процедури повинна задовільняти такій формі: | ||
Рядок 57: | Рядок 56: | ||
P[префікс]_[назва_таблиці_без_префіксів_та_закінчень][S]_[закінчення][_n][_Vn] | P[префікс]_[назва_таблиці_без_префіксів_та_закінчень][S]_[закінчення][_n][_Vn] | ||
− | [префікс] — 1,2-і літери, що вказують на назву модуля (програми), для якого написана дана процедура. Так процедури, що створені для роботи з даними у формі дерева, при назві відповідного модуля (програми, підпроекту) TREE матимуть префікс «PT_». [назва_таблиці_без_префіксів_та_закінчень] — назва в однині основної таблиці, з даними якої мають відбуватись маніпуляції. [S] — не обов'язкове закінчення, яке вказує, на те, що дана процедура працює з одним, або кількома(багатьма) записами таблиці. [закінчення] — може мати наступний вигляд: | + | <code>[префікс]</code> — 1,2-і літери, що вказують на назву модуля (програми), для якого написана дана процедура. Так процедури, що створені для роботи з даними у формі дерева, при назві відповідного модуля (програми, підпроекту) TREE матимуть префікс «PT_». <code>[назва_таблиці_без_префіксів_та_закінчень]</code> — назва в однині основної таблиці, з даними якої мають відбуватись маніпуляції. |
− | VIEW — вказує, на те, що дана процедура призначена для відображення даних таблиці, у прийнятному для користувача вигляді | + | <code>[S]</code> — не обов'язкове закінчення, яке вказує, на те, що дана процедура працює з одним, або кількома(багатьма) записами таблиці. <code>[закінчення]</code> — може мати наступний вигляд: |
− | INS — вказує на те, що процедура призначена для вставки записів/запису у таблицю | + | * VIEW — вказує, на те, що дана процедура призначена для відображення даних таблиці, у прийнятному для користувача вигляді. |
− | UPD — вказує на те, що процедура призначена оновлення записів/запису у таблицю | + | * INS — вказує на те, що процедура призначена для вставки записів/запису у таблицю. |
− | INS_OR_UPD — процедура спеціального виду, що оновлює елемент з певним | + | * UPD — вказує на те, що процедура призначена для оновлення записів/запису у таблицю. |
+ | * INS_OR_UPD — процедура спеціального виду, що оновлює елемент з певним ID, а коли такого елемента не існує, то вставляє його. | ||
[_n] — необов'язкове закінчення, що показує номер, однотипної процедури | [_n] — необов'язкове закінчення, що показує номер, однотипної процедури | ||
Рядок 82: | Рядок 82: | ||
2.3. Вимоги до оформлення тексту процедури | 2.3. Вимоги до оформлення тексту процедури | ||
Текст процедури повинен бути максимально зручним для читання, та задовільняти загаліним вимогам до написання вихідного тексту (див відповідний документ). | Текст процедури повинен бути максимально зручним для читання, та задовільняти загаліним вимогам до написання вихідного тексту (див відповідний документ). | ||
− | [[Категорія:Капітал]] [[Категорія: | + | [[Категорія:Капітал]] [[Категорія:Firebird]] |
Версія за 11:25, 20 травня 2015
База даних (скорочено — БД) - центральна частина програмного комплексу Капітал, в якій і зберігаються та оброблюються всі дані.
Характеристики
Характеристика | Значення |
---|---|
СУБД | Firebird |
Приклад | Приклад |
Приклад | Приклад |
Структура
Оформлення об'єктів
На даний момент даний список вимог є орієнтовним та неповним, і потребує уточнень та доповнень
1. Оформлення таблиць
1.1 Вимоги до назви таблиці
Назва таблиці повинна задовільняти такій формі:
[префікс]_[TYPE_][назва_об'єкту_що_зберігається_англійською_мовою]S
Для звичайних таблиць [префікс]
- це велика англійська літера «Т», для таблиць, у яких зберігаються статичні дані - «TS».
Слово [TYPE_]
не є обов'язковим, і вказує на те, що в даній таблиці зберігається перелік типів (видів) якогось об'єкта.
[назва_об'єкту_що_зберігається_англійською_мовою]
— назва в називному відмінку та однині об'єктів, що зберігаються англійською мовою. Якщо немає слова — відповідника, то пишеться сполучення англійських слів через нижнє підкреслення. У випадку, коли сполучення слів є надто довгим, допускаються скорочення, але тоді даного скорочення необхідно дотримуватись по всій базі даних.
В кінці назви таблиці (або в деяких випадках після слова-іменника в назві об'єкта англійською мовою) ставиться літера «S», яка вказує на те, що в даній таблиці зберігається множина об'єктів.
Приклади:
- Нехай ми маємо таблицю, у якій зберігаються товари. Оскільки товар англійською буде nomen, то наша таблиця матиме назву
T_NOMENS
. - Таблиця, що містить перелік типів документів: TS_TYPE_DOCUMENTS
- Таблиця, що містить налаштування: TS_CONFIGS
- Таблиця, що містить товари для синхронізації: T_NOMENS_SYNC. (В даному випадку, всі таблиці з об'єктами створеними для синхронізації матимуть закінчення _SYNC). У випадку, коли ми назвемо таблицю T_SYNC_NOMENS, всі таблиці з об'єктами створеними для синхронізації матимуть префікс SYNC_. Ці два підходи є рівноправними, і застосовуються за смаком розробника.
1.2. Вимоги до опису таблиці
Кожна таблиця повинна бути описана у відповідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i є відповідна закладка для внесення опису таблиці.
1.3. Вимоги до назв полів Назва поля, повинна максимально точно відображати дані, які мають зберігатись у даному полі. При можливості, назва не повинна бути надто довгою.
1.4. Вимоги до опису полів
Кожне поле (крім таких, призначення яких тривіально визначається із назви: наприклад ID, NAME) повинна бути описана у відновідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i на вкладці полів БД є спеціальне поле для внесення опису поля.
1.5. Вимоги до типів даних, які повинні використовуватись
Для рядкового типу даних повинно використовуватись тип VARCHAR(N), оскільки він займає набагато менше трафіку при пересиланні даних із БД до користувача.
2. Вимоги до оформлення процедур
2.1. Вимоги до назви процедури
В загальному випадку назва процедури повинна задовільняти такій формі:
P[префікс]_[назва_таблиці_без_префіксів_та_закінчень][S]_[закінчення][_n][_Vn]
[префікс]
— 1,2-і літери, що вказують на назву модуля (програми), для якого написана дана процедура. Так процедури, що створені для роботи з даними у формі дерева, при назві відповідного модуля (програми, підпроекту) TREE матимуть префікс «PT_». [назва_таблиці_без_префіксів_та_закінчень]
— назва в однині основної таблиці, з даними якої мають відбуватись маніпуляції.
[S]
— не обов'язкове закінчення, яке вказує, на те, що дана процедура працює з одним, або кількома(багатьма) записами таблиці. [закінчення]
— може мати наступний вигляд:
- VIEW — вказує, на те, що дана процедура призначена для відображення даних таблиці, у прийнятному для користувача вигляді.
- INS — вказує на те, що процедура призначена для вставки записів/запису у таблицю.
- UPD — вказує на те, що процедура призначена для оновлення записів/запису у таблицю.
- INS_OR_UPD — процедура спеціального виду, що оновлює елемент з певним ID, а коли такого елемента не існує, то вставляє його.
[_n] — необов'язкове закінчення, що показує номер, однотипної процедури
[_Vn] — необов'язкове закінчення, що вказує на версію процедури (n - номер версії) Приклад: Нехай ми працюємо з таблицею T_ITEMS і створюємо процедури для роботи модуля TREE, тоді: PT_ITEM_VIEW — процедура, для перегляду даних одного елемента PT_ITEMS_VIEW_0 — процедура, для перегляду багатьох даних таблиці (закінчення «_0» не є обов'язковим) PT_ITEMS_VIEW_1 - процедура, для перегляду багатьох даних таблиці із іншими вхідними параметрами, що PT_ITEMS_VIEW_0 (закінчення «_1» є обов'язковим) PT_ITEM_INS — процедура, для вставки 1-го записа в таблицю PT_ITEM_UPD — процедура, для оновлення 1-го запису таблиці
2.2. Вимоги до параметрів процедури Параметер процедури повинен мати такий же тип даних, як і відповідне поле таблиці бази даних, оскільки при перетворенні можуть втрачатись (псуватись) дані, що може призвести до помилки, яка важко виявляється. Назва параметра повинна бути такою ж, як і назва відповідного поля БД, з добавленням префікса: «і» - для вхідних параметрів «о» - для вихідних параметрів «р» - для тимчасових параметрів
2.3. Вимоги до оформлення тексту процедури Текст процедури повинен бути максимально зручним для читання, та задовільняти загаліним вимогам до написання вихідного тексту (див відповідний документ).