Changes between Version 4 and Version 5 of DatabaseCreation


Ignore:
Timestamp:
07/02/26 02:11:05 (4 days ago)
Author:
231178
Comment:

Додадена документација за DDL

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseCreation

    v4 v5  
    1 = Креирање на база
     1= Креирање и пополнување на база
     2
     3\\
     4
     5= Креирање на база — DDL
    26
    37== DDL Скрипта за креирање на табелите
     8
    49[attachment:schema.sql DDL]
    510
     11----
     12
     13== Species ==
     14
     15Ги содржи можните видови на животни
     16
     17Податоците се статички и се преземаат од `species.csv`
     18
     19||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     20||  species_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     21||  name  ||  VARCHAR(100)  ||  NOT NULL UNIQUE  ||  Име на вид  ||
     22||  description  ||  VARCHAR(255)  || ||  Опис на вид  ||
     23
     24----
     25
     26== Breed ==
     27
     28Ги содржи можните раси на животни и нивните видови
     29
     30Податоците се статички и се преземаат од `breed.csv`
     31
     32||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     33||  breed_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     34||  name  ||  VARCHAR(100)  ||  NOT NULL  ||  Име на раса  ||
     35||  description  ||  VARCHAR(255)  || ||  Опис на раса  ||
     36||  species_id  ||  INTEGER  ||  NOT NULL FK  ||  Вид на животно на кое му припаѓа расата  ||
     37
     38----
     39
     40== Category ==
     41
     42Ги содржи можните категории на производи кои се набавуваат
     43
     44Податоците се статички и се внесуваат со `INSERT INTO ... VALUES`
     45
     46||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     47||  category_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     48||  name  ||  VARCHAR(100)  ||  NOT NULL  ||  Име на категорија  ||
     49||  description  ||  VARCHAR(255)  || ||  Опис на категорија  ||
     50
     51----
     52
     53== Room_Type ==
     54
     55Ги содржи можните типови на соби
     56
     57Податоците се статички и се внесуваат со `INSERT INTO ... VALUES`
     58
     59||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     60||  room_type_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     61||  name  ||  VARCHAR(100)  ||  NOT NULL UNIQUE  ||  Име на тип на соба  ||
     62||  description  ||  VARCHAR(255)  || ||  Опис на тип на соба  ||
     63||  price_per_night  ||  NUMERIC(10, 2)  ||  NOT NULL DEFAULT 0.00  ||  Цена за една ноќ  ||
     64
     65----
     66
     67== Service ==
     68
     69Ги содржи сервисите кои ги нуди хотелот
     70
     71Податоците се статички и се внесуваат со `INSERT INTO ... VALUES`
     72
     73||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     74||  service_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     75||  name  ||  VARCHAR(100)  ||  NOT NULL UNIQUE  ||  Име на сервис  ||
     76||  description  ||  VARCHAR(255)  || ||  Опис на сервис  ||
     77||  price  ||  NUMERIC(10, 2)  ||  NOT NULL DEFAULT 0.00  ||  Цена за сервис  ||
     78||  duration_minutes  ||  INTEGER  || ||  Времетраење на сервис во минути  ||
     79
     80----
     81
     82== Enum lookup табели ==
     83
     84Секое поле кое претходно беше слободен текст (статус, метод на плаќање, дестинација, термин) сега е поддржано со мала reference табела наместо VARCHAR, следејќи го истиот принцип како Category / Room_Type / Service — со цел референцијален интегритет наместо произволен текст. Статичките вредности се внесуваат преку `INSERT INTO ... VALUES` во `inserts.sql`, а редоследот на инсертирање го фиксира `_id`-то на секоја вредност (пр. `OrderStatus` id 1 = 'pending').
     85
     86Секоја табела ја следи истата структура:
     87{{{
     88{name}_id  SMALLINT  PRIMARY KEY (GENERATED ALWAYS AS IDENTITY)
     89name       VARCHAR(20)  NOT NULL UNIQUE
     90}}}
     91
     92||=  Табела  =||=  Можни вредности  ||
     93|| `OrderStatus` || pending, confirmed, completed, cancelled ||
     94|| `ReservationStatus` || confirmed, completed, pending, cancelled, no-show ||
     95|| `ServiceReservationStatus` || scheduled, completed, cancelled, no-show ||
     96|| `PaymentMethod` || credit card, debit card, cash, bank transfer, PayPal ||
     97|| `PaymentStatus` || completed, refunded, pending ||
     98|| `DeliveryStatus` || pending, in_transit, delivered, failed ||
     99|| `DeliveryTimeSlot` || morning, afternoon, evening, overnight ||
     100|| `PetDeliveryStatus` || scheduled, delivered, failed, confirmed ||
     101|| `PetDeliveryDestination` || home, hotel, vet clinic, airport ||
     102|| `MedicalRecordStatus` || healthy, sick, recovering ||
     103|| `DateStatus` || occupied, available, maintenance ||
     104
     105----
     106
     107== Hotel ==
     108
     109Ги содржи хотелите кои го користат системот
     110
     111Податоците се статички и се внесуваат со `INSERT INTO ... VALUES`
     112
     113Број на редици: 10
     114
     115||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     116||  hotel_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     117||  name  ||  VARCHAR(100)  ||  NOT NULL  ||  Име на хотел  ||
     118||  location  ||  VARCHAR(100)  ||  UNIQUE  ||  Локација на хотел  ||
     119
     120----
     121
     122== Employee ==
     123
     124Ги содржи вработените во хотелот
     125
     126Генерирање
     127 * Имиња по случаен избор од привремени табели `first_names_male`, `first_names_female`, `last_names`
     128 * Проверка за валидност на телефонски број и електронска пошта
     129 * Датум на вработување помеѓу 2016 и 2026
     130
     131Број на редици: 300 (околу 30 вработени во секој хотел)
     132
     133||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     134||  employee_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     135||  first_name  ||  VARCHAR(50)  ||  NOT NULL  ||  Име на вработен  ||
     136||  last_name  ||  VARCHAR(50)  ||  NOT NULL  ||  Презиме на вработен  ||
     137||  role  ||  VARCHAR(50)  || ||  Работна позиција на вработен  ||
     138||  phone  ||  VARCHAR(20)  || ||  Телефонски број на вработен  ||
     139||  email  ||  VARCHAR(100)  || ||  Електронска пошта на вработен  ||
     140||  hire_date  ||  DATE  || ||  Датум на вработување  ||
     141||  hotel_id  ||  INTEGER  ||  NOT NULL DEFAULT -1 FK  ||  Хотел во кој работи вработениот  ||
     142
     143----
     144
     145== Room ==
     146
     147Ги содржи индивидуалните соби во даден хотел
     148
     149Генерирање
     150 * Број на соба по случаен избор вклучувајќи број и буква
     151
     152Број на редици: 2,500 (околу 250 соби во секој хотел)
     153
     154||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     155||  room_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     156||  room_number  ||  VARCHAR(20)  ||  NOT NULL  ||  Број на соба, може да содржи и букви  ||
     157||  capacity  ||  INTEGER  || ||  Број на дозволени миленичиња во соба  ||
     158||  room_type_id  ||  INTEGER  ||  NOT NULL FK  ||  Тип на соба  ||
     159||  hotel_id  ||  INTEGER  ||  NOT NULL DEFAULT -1 FK  ||  Хотел во кој се наоѓа собата  ||
     160
     161----
     162
     163== Date ==
     164
     165За секој датум се чува статус на собата
     166
     167Генерирање
     168 * Примарен клуч претставува комбинација на `date` и `room_id`
     169 * Содржи податоци за секој датум од 2015 до 2027
     170
     171Број на редици: ~11,870,000
     172
     173||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     174||  date  ||  DATE  ||  NOT NULL  ||  Датум  ||
     175||  room_id  ||  INTEGER  ||  NOT NULL FK  ||  Соба  ||
     176||  status_id  ||  SMALLINT  ||  FK  ||  Статус на соба за дадениот датум (occupied/available/maintenance)  ||
     177
     178----
     179
     180== Supplier ==
     181
     182Ги содржи добавувачите на производи
     183
     184Податоците се статички и се внесуваат со `INSERT INTO ... VALUES`
     185
     186Број на редици: 5
     187
     188||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     189||  supplier_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     190||  name  ||  VARCHAR(100)  ||  NOT NULL  ||  Име на доставувачка компанија  ||
     191||  contact_name  ||  VARCHAR(100)  || ||  Име на доставувач  ||
     192||  phone  ||  VARCHAR(20)  || ||  Телефонски број  ||
     193||  email  ||  VARCHAR(100)  || ||  Електронска пошта  ||
     194||  address  ||  VARCHAR(255)  || ||  Адреса на добавувач  ||
     195
     196----
     197
     198== Customer ==
     199
     200Ги содржи корисниците на системот
     201
     202Генерирање
     203 * Имиња по случаен избор од привремени табели `first_names_male`, `first_names_female`, `last_names`
     204 * Проверка за валидност на телефонски број и електронска пошта
     205 * Датум на регистрација помеѓу 2016 и 2026
     206
     207Број на редици: 150,000
     208
     209||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     210||  customer_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     211||  first_name  ||  VARCHAR(50)  ||  NOT NULL  ||  Име на корисник  ||
     212||  last_name  ||  VARCHAR(50)  ||  NOT NULL  ||  Презиме на корисник  ||
     213||  email  ||  VARCHAR(100)  ||  NOT NULL UNIQUE  ||  Електронска пошта на корисник  ||
     214||  phone  ||  VARCHAR(20)  || ||  Телефонски број на корисник  ||
     215||  address  ||  VARCHAR(255)  || ||  Адреса на корисник  ||
     216||  registration_date  ||  DATE  || ||  Датум на креирање на профил  ||
     217
     218----
     219
     220== Pet ==
     221
     222Ги содржи миленичињата кои се внесени во системот
     223
     224Генерирање
     225 * Имиња и пол по случаен избор
     226 * Датум на раѓање по случаен избор
     227
     228Број на редици: 200,000
     229
     230||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     231||  pet_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     232||  name  ||  VARCHAR(100)  ||  NOT NULL  ||  Име на милениче  ||
     233||  date_of_birth  ||  DATE  || ||  Датум на раѓање на милениче  ||
     234||  gender  ||  VARCHAR(10)  || ||  Пол на милениче  ||
     235||  customer_id  ||  INTEGER  ||  NOT NULL FK  ||  Корисник на кој му припаѓа миленичето  ||
     236||  species_id  ||  INTEGER  ||  NOT NULL FK  ||  Вид на животно  ||
     237||  breed_id  ||  INTEGER  ||  FK  ||  Раса на животно  ||
     238
     239----
     240
     241== Product ==
     242
     243Ги содржи производите кои ги добавува хотелот
     244
     245Генерирање
     246 * Случаен избор на име, категорија и цена
     247
     248Број на редици: 500
     249
     250||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     251||  product_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     252||  name  ||  VARCHAR(100)  ||  NOT NULL  ||  Име на производ  ||
     253||  description  ||  VARCHAR(255)  || ||  Опис на производ  ||
     254||  price  ||  NUMERIC(10, 2)  ||  NOT NULL DEFAULT 0.00  ||  Цена на производ  ||
     255||  category_id  ||  INTEGER  ||  NOT NULL FK  ||  Категорија на производ  ||
     256||  supplier_id  ||  INTEGER  ||  FK  ||  Доставувач на производ  ||
     257
     258----
     259
     260== "Order" ==
     261
     262Ги содржи нарачките на производи
     263
     264Генерирање
     265 * Датум, статус и цена по случаен избор
     266
     267Број на редици: 45,000
     268
     269||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     270||  order_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     271||  order_date  ||  DATE  ||  NOT NULL DEFAULT CURRENT_DATE  ||  Датум на нарачка  ||
     272||  status_id  ||  SMALLINT  ||  FK  ||  Статус на нарачка  ||
     273||  total_amount  ||  NUMERIC(10, 2)  ||  DEFAULT 0.00  ||  Цена на нарачка  ||
     274||  customer_id  ||  INTEGER  ||  NOT NULL FK  ||  Корисник кој ја направил нарачката  ||
     275||  hotel_id  ||  INTEGER  ||  NOT NULL FK  ||  Хотелот преку кој е направена нарачката  ||
     276
     277----
     278
     279== OrderProduct ==
     280
     281За секоја нарачка се чуваат производите кои се нарачани
     282
     283Генерирање
     284 * Број на производи и цена по случаен избор
     285
     286Број на редици: ~23,000
     287
     288||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     289||  orderproduct_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     290||  quantity  ||  INTEGER  ||  DEFAULT 1  ||  Број на производи од даден тип во нарачката  ||
     291||  unit_price  ||  NUMERIC(10, 2)  || ||  Цена за една инстанца од производот  ||
     292||  order_id  ||  INTEGER  ||  NOT NULL FK  ||  Нарачка  ||
     293||  product_id  ||  INTEGER  ||  NOT NULL FK  ||  Производ  ||
     294
     295----
     296
     297== Delivery ==
     298
     299Ги содржи доставите на производи во нарачка
     300
     301'''Забелешка:''' полето претходно наречено `delivered_at` (VARCHAR) чуваше термин на достава (morning/afternoon/evening/overnight), не временска ознака — преименувано во `delivery_time_slot_id` и поврзано со lookup табела.
     302
     303||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     304||  delivery_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     305||  delivery_time_slot_id  ||  SMALLINT  ||  FK  ||  Термин на достава  ||
     306||  status_id  ||  SMALLINT  ||  FK  ||  Статус на достава  ||
     307||  hotel_id  ||  INTEGER  ||  NOT NULL FK  ||  Хотелот поврзан со доставата  ||
     308||  purchase_id  ||  INTEGER  ||  NOT NULL FK  ||  Клуч до OrderProduct  ||
     309
     310----
     311
     312== Reservation ==
     313
     314Ги содржи резервациите
     315
     316Генерирање
     317 * 100 batch итерации, 100,000 записи по итерација
     318 * Датуми од 2015 до 2027
     319 * Статуси по случаен избор
     320
     321Број на редици: 10,000,000
     322
     323||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     324||  reservation_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     325||  reservation_date  ||  DATE  ||  NOT NULL DEFAULT CURRENT_DATE  ||  Датум на резервација  ||
     326||  status_id  ||  SMALLINT  ||  FK  ||  Статус на резервација  ||
     327||  notes  ||  VARCHAR(255)  || ||  Дополнителни информации за резервацијата  ||
     328||  total_cost  ||  INTEGER  || ||  Цена на резервацијата  ||
     329||  pet_id  ||  INTEGER  ||  NOT NULL FK  ||  Милениче на кое се однесува резервацијата  ||
     330||  employee_id  ||  INTEGER  ||  FK  ||  Вработен кој ја извршил резервацијата  ||
     331
     332'''Дополнително ограничување:''' `chk_reservation_status CHECK (status_id IN ('1','2','3','4','5'))` — експлицитно го ограничува `status_id` на познатите вредности 1–5. Технички е донекаде redundant со FK кон `ReservationStatus` (FK веќе гарантира дека вредноста постои во lookup табелата), но служи како дополнителна експлицитна заштита на ниво на самата табела.
     333
     334----
     335
     336== RoomReservation ==
     337
     338Ги содржи резервациите за хотелски соби
     339
     340Генерирање
     341 * Секоја резервација добива точно една соба
     342 * Времетраење од 1 до 6 ноќевања со валидни `check_in_date` и `check_out_date`
     343
     344Број на редици: 10,000,000
     345
     346||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     347||  room_reservation_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     348||  check_in_date  ||  DATE  ||  NOT NULL  ||  Датум на пристигнување во хотелот  ||
     349||  check_out_date  ||  DATE  ||  NOT NULL, CHECK > check_in_date  ||  Датум на излегување од хотелот  ||
     350||  reservation_id  ||  INTEGER  ||  NOT NULL FK UNIQUE  ||  Резервација  ||
     351||  room_id  ||  INTEGER  ||  NOT NULL FK  ||  Соба  ||
     352
     353'''Дополнителни ограничувања:'''
     354 * `chk_roomres_dates CHECK (check_out_date > check_in_date)` — заминувањето мора да е по пристигнувањето.
     355 * `chk_roomres_max_stay CHECK (check_out_date - check_in_date <= 365)` — максимален престој од 365 дена, спречува очигледно погрешен/нереален внес на датуми.
     356
     357----
     358
     359== ServiceReservation ==
     360
     361Ги содржи резервациите за сервиси
     362
     363Генерирање
     364 * ~60% од резервациите имаат сервис
     365 * `scheduled_date` се наоѓа помеѓу `check_in_date` и `check_out_date` од `RoomReservation`
     366 * `scheduled_time` се избира од неколку можни термини
     367
     368Број на редици: ~9,000,000
     369
     370||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     371||  service_reservation_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     372||  scheduled_date  ||  DATE  ||  NOT NULL  ||  Датум на резервација  ||
     373||  scheduled_time  ||  TIME  || ||  Време на резервација  ||
     374||  status_id  ||  SMALLINT  ||  FK  ||  Статус на резервација  ||
     375||  reservation_id  ||  INTEGER  ||  NOT NULL FK  ||  Резервација  ||
     376||  service_id  ||  INTEGER  ||  NOT NULL FK  ||  Сервис  ||
     377
     378'''Дополнително ограничување:''' `chk_svcres_status CHECK (status_id IN ('1','2','3','4'))` — исто како кај `Reservation`, редовно се преклопува со FK кон `ServiceReservationStatus`.
     379
     380----
     381
     382== Employee_Service ==
     383
     384Ги содржи вработените кои можат да извршуваат даден сервис
     385
     386Генерирање
     387 * Примарен клуч претставува комбинација на `employee_id` и `service_id`
     388
     389||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     390||  employee_id  ||  INTEGER  ||  NOT NULL FK  ||  Вработен  ||
     391||  service_id  ||  INTEGER  ||  NOT NULL FK  ||  Сервис  ||
     392
     393----
     394
     395== Product_Service ==
     396
     397Ги содржи производите кои се користат во даден сервис
     398
     399Генерирање
     400 * Примарен клуч претставува комбинација на `product_id` и `service_id`
     401
     402||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     403||  product_id  ||  INTEGER  ||  NOT NULL FK  ||  Производ  ||
     404||  service_id  ||  INTEGER  ||  NOT NULL FK  ||  Сервис  ||
     405
     406----
     407
     408== Payment ==
     409
     410Ги содржи плаќањата за резервациите
     411
     412Генерирање
     413 * Само за резервации кои се `confirmed` или `completed`
     414 * Случаен избор за датум, статус и начин на плаќање
     415
     416Број на редици: ~6,000,000
     417
     418||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     419||  payment_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     420||  payment_date  ||  DATE  ||  NOT NULL DEFAULT CURRENT_DATE  ||  Датум на плаќање  ||
     421||  amount  ||  NUMERIC(10, 2)  ||  NOT NULL  ||  Платена сума  ||
     422||  payment_method_id  ||  SMALLINT  ||  FK  ||  Начин на плаќање  ||
     423||  status_id  ||  SMALLINT  ||  FK  ||  Статус на плаќање  ||
     424||  reservation_id  ||  INTEGER  ||  FK  ||  Резервација  ||
     425
     426'''Дополнителни ограничувања:'''
     427 * `chk_payment_source CHECK (reservation_id IS NOT NULL)` — секое плаќање мора да е поврзано со резервација.
     428 * `chk_payment_positive CHECK (amount > 0)` — сумата на плаќање мора да е позитивна, спречува внес на нула/негативни износи.
     429
     430----
     431
     432== Review ==
     433
     434Ги содржи рецензиите за хотели
     435
     436Генерирање
     437 * Случајно избрани оцени помеѓу 1 и 10
     438 * Пораката се избира од дадени опции зависно од оцената
     439
     440Број на редици: 150,000
     441
     442||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     443||  review_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     444||  review_date  ||  DATE  || ||  Датум на оставање на рецензија  ||
     445||  rating  ||  INTEGER  ||  CHECK BETWEEN 1 AND 10  ||  Оцена  ||
     446||  comment  ||  VARCHAR(255)  || ||  Коментар  ||
     447||  customer_id  ||  INTEGER  ||  NOT NULL FK  ||  Корисник кој ја оставил рецензијата  ||
     448||  hotel_id  ||  INTEGER  ||  NOT NULL FK  ||  Хотел за кој се однесува рецензијата  ||
     449
     450----
     451
     452== MedicalRecord ==
     453
     454Ги содржи медицинските записи за миленичињата
     455
     456Генерирање
     457 * Случаен избор на име на ветеринар преку привремена табела `last_names`
     458 * Случаен избор за датум, статус, алергени, лекови и дијагноза
     459
     460Број на редици: 300,000
     461
     462||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     463||  record_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     464||  record_date  ||  DATE  || ||  Датум на запис  ||
     465||  status_id  ||  SMALLINT  ||  FK  ||  Статус на запис  ||
     466||  vet_name  ||  VARCHAR(50)  || ||  Име на ветеринар  ||
     467||  alergies  ||  VARCHAR(255)  || ||  Алергии на миленичето  ||
     468||  medications  ||  VARCHAR(255)  || ||  Лекови кои ги прима миленичето  ||
     469||  note  ||  VARCHAR(255)  || ||  Дополнителни информации  ||
     470||  diagnosis  ||  VARCHAR(255)  || ||  Дијагноза на миленичето  ||
     471||  pet_id  ||  INTEGER  ||  NOT NULL FK  ||  Милениче  ||
     472
     473----
     474
     475== PetDelivery ==
     476
     477Ги содржи доставите на миленичиња
     478
     479Генерирање
     480 * Случаен избор на време на достава, статус и дестинација
     481
     482Број на редици: 80,000
     483
     484||=  Колона  =||=  Тип  =||=  Ограничувања  =||=  Објаснување  ||
     485||  pet_delivery_id  ||  INTEGER  ||  PRIMARY KEY  ||  Примарен клуч  ||
     486||  delivery_time  ||  TIMESTAMP  || ||  Време на достава  ||
     487||  status_id  ||  SMALLINT  ||  FK  ||  Статус на достава  ||
     488||  destination_id  ||  SMALLINT  ||  FK  ||  Дестинација на достава  ||
     489||  reservation_id  ||  INTEGER  ||  NOT NULL FK  ||  Резервација со која е поврзана доставата  ||
     490||  employee_id  ||  INTEGER  ||  FK  ||  Вработен кој ја врши доставата  ||
     491
     492\\
    6493
    7494= Вметнување на податоци - DML =