База даних

Матеріал з Wiki Script Solutions
Перейти до: навігація, пошук

База даних (скорочено — БД) - центральна частина програмного комплексу Капітал, в якій і зберігаються та оброблюються всі дані. Написана на СУБД з відкритим кодом Firebird. На даний час використовується версія 2.5 цієї СУБД.

Структура

Всі таблиці БД можна розділити на статичні і динамічні. До динамічних відносяться ті, що наповнюються під час роботи магазину, вони містять дані про клієнтів, документи та товари. Статичні дані не міняються при роботі, наприклад: перелік типів документів, перелік грошових знаків, налаштування програми.

Оформлення об'єктів

На даний момент даний список вимог є орієнтовним та неповним, і потребує уточнень та доповнень

Вимоги до назви таблиці. Назва таблиці повинна задовільняти такій формі:

[префікс]_[TYPE_][назва_об'єкту_що_зберігається_англійською_мовою]S

Для звичайних таблиць [префікс] - це велика англійська літера «Т», для таблиць, у яких зберігаються статичні дані - «TS».
Слово [TYPE_] не є обов'язковим, і вказує на те, що в даній таблиці зберігається перелік типів (видів) якогось об'єкта.
[назва_об'єкту_що_зберігається_англійською_мовою] — назва в називному відмінку та однині об'єктів, що зберігаються англійською мовою. Якщо немає слова — відповідника, то пишеться сполучення англійських слів через нижнє підкреслення. У випадку, коли сполучення слів є надто довгим, допускаються скорочення, але тоді даного скорочення необхідно дотримуватись по всій базі даних.

В кінці назви таблиці (або в деяких випадках після слова-іменника в назві об'єкта англійською мовою) ставиться літера «S», яка вказує на те, що в даній таблиці зберігається множина об'єктів.

Приклади:

  • Нехай ми маємо таблицю, у якій зберігаються товари. Оскільки товар англійською буде nomen, то наша таблиця матиме назву T_NOMENS.
  • Таблиця, що містить перелік типів документів: TS_TYPE_DOCUMENTS
  • Таблиця, що містить налаштування: TS_CONFIGS
  • Таблиця, що містить товари для синхронізації: T_NOMENS_SYNC. (В даному випадку, всі таблиці з об'єктами створеними для синхронізації матимуть закінчення _SYNC). У випадку, коли ми назвемо таблицю T_SYNC_NOMENS, всі таблиці з об'єктами створеними для синхронізації матимуть префікс SYNC_. Ці два підходи є рівноправними, і застосовуються за смаком розробника.

Вимоги до опису таблиці. Кожна таблиця повинна бути описана у відповідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i є відповідна закладка для внесення опису таблиці.

Вимоги до назв полів. Назва поля, повинна максимально точно відображати дані, які мають зберігатись у даному полі. При можливості, назва не повинна бути надто довгою.

Вимоги до опису полів. Кожне поле (крім таких, призначення яких тривіально визначається із назви: наприклад ID, NAME) повинна бути описана у відновідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i на вкладці полів БД є спеціальне поле для внесення опису поля.

Вимоги до типів даних, які повинні використовуватись. Для рядкового типу даних повинно використовуватись тип VARCHAR(N), оскільки він займає набагато менше трафіку при пересиланні даних із БД до користувача.

Вимоги до назви процедури. В загальному випадку назва процедури повинна задовільняти такій формі:

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.3. Вимоги до оформлення тексту процедури
Текст процедури повинен бути максимально зручним для читання, та задовільняти загальним вимогам до написання вихідного тексту (див відповідний документ).