| 106 | = Consistency |
| 107 | Сега ке видиме пример каде ја штитиме базата од внесување невалидни или несоодветни податоци \\ |
| 108 | поради поставените '''constraints''' односно ограничувања.\\ |
| 109 | '''Пример 1 : Error'''\\ |
| 110 | '''FOREIGN KEY врски''' (на пример, '''{{{id_customer}}}''' во '''{{{orders}}}''' мора да постои во '''{{{customers}}}'''),\\ |
| 111 | а од друга страна имаме поставено и неколку '''NOT NULL''' полиња. \\ |
| 112 | Во '''/order''' API, пред да се внесе нарачка, се проверува дали има доволно залиха : |
| 113 | {{{#!sql |
| 114 | if (currentStock < item.quantity) { |
| 115 | throw new Error(`Недоволна залиха за продукт ${item.product_name} (${item.size})`); |
| 116 | } |
| 117 | }}} |
| 118 | На овој начин се спречува несоодветно внесување на залиха во база, што би ја нарушило логиката и правилата во базата.\\ |
| 119 | Ако нешто не е во ред, трансакцијата не се потврдува и базата останува во валидна состојба.\\ |
| 120 | '''Пример 2 : status(400) '''\\ |
| 121 | Во API за промена на улога '''PUT /admin/users/:id/role''' проверуваm дали улогата постои во '''roles''' пред да се измени :\\ |
| 122 | {{{#!sql |
| 123 | const roleRes = await db.pool.query("SELECT id_role FROM roles WHERE role_name = $1", [role_name]); |
| 124 | if (roleRes.rows.length === 0) { |
| 125 | return res.status(400).json({ error: "Улогата не постои" }); |
| 126 | } |
| 127 | }}} |
| 128 | ова е уште еден пример каде се штити базата од внесување невалидни или несоодветни податоци. |