Changes between Initial Version and Version 1 of RelationalModel


Ignore:
Timestamp:
04/19/26 01:45:15 (2 weeks ago)
Author:
231118
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalModel

    v1 v1  
     1= Relation Design =
     2
     3== Опис ==
     4Базата е дизајнирана за систем за рецепти кој вклучува корисници, рецепти, состојки, преференции и форум функционалности. Овозможува персонализација преку алергии и преференции, како и интеракција преку коментари, лајкови и оценки.
     5
     6== Релациски дијаграм ==
     7[[Image(relational_diagram.png)]]
     8
     9== Главни ентитети ==
     10
     11* '''user''' – содржи податоци за корисници (username, email, password)
     12* '''recipe''' – рецепти со опис, нутритивни вредности и време за подготовка
     13* '''ingredient''' – состојки кои се користат во рецепти
     14* '''category, tags, cuisine''' – класификација и организација на рецепти
     15* '''allergen''' – алергени поврзани со состојки и корисници
     16* '''preferences''' – поставки поврзани со корисник (калории, време, итн.)
     17
     18== Релации ==
     19
     20* '''1:1'''
     21
     22  * user → preferences (еден корисник има една преференца)
     23
     24* '''1:N'''
     25
     26  * recipe → instruction (еден рецепт има повеќе чекори)
     27  * instruction → instruction_media (еден чекор има повеќе медиуми)
     28  * user → forumpost (еден корисник може да има повеќе постови)
     29
     30* '''N:M (преку посредни табли)'''
     31
     32  * user ↔ role (user_role)
     33  * user ↔ allergen (user_allergen)
     34  * recipe ↔ category (recipe_category)
     35  * recipe ↔ tags (recipe_tags)
     36  * recipe ↔ ingredient (recipe_ingredient)
     37  * preferences ↔ cuisine (preferences_cuisine)
     38
     39== Форум и интеракции ==
     40
     41* '''forumpost''' – постови креирани од корисници (може да се поврзат со рецепт)
     42* '''forumpost_like''' – корисници можат да лајкнуваат постови
     43* '''forumpost_comment''' – коментари со поддршка за вложени (nested) одговори
     44
     45== User–Recipe активности ==
     46
     47* '''recipe_favorite''' – омилени рецепти
     48* '''recipe_attempt''' – рецепти кои корисник ги пробал
     49* '''recipe_review''' – оценка и коментар (само ако постои attempt)
     50* '''recipe_view''' – следење на прегледи
     51* '''recipe_dislike''' – рецепти кои не му се допаѓаат на корисникот
     52
     53== Ограничувања и интегритет ==
     54
     55* PRIMARY KEY и FOREIGN KEY за поврзување на табелите
     56* UNIQUE за спречување дупликати
     57* CHECK constraints (валиден email, password правила, вредности)
     58* ON DELETE CASCADE / RESTRICT / SET NULL за контрола при бришење
     59
     60== Заклучок ==
     61Дизајнот е нормализиран и овозможува флексибилно управување со податоци, како и поддршка за сложени релации и кориснички интеракции.