wiki:RelationalModel

Version 2 (modified by 231118, 12 days ago) ( diff )

--

Relation Design

Опис

Базата е дизајнирана за систем за рецепти кој вклучува корисници, рецепти, состојки, преференции и форум функционалности. Овозможува персонализација преку алергии и преференции, како и интеракција преку коментари, лајкови и оценки.

Релациски дијаграм

Главни ентитети

  • user – содржи податоци за корисници (username, email, password)
  • recipe – рецепти со опис, нутритивни вредности и време за подготовка
  • ingredient – состојки кои се користат во рецепти
  • category, tags, cuisine – класификација и организација на рецепти
  • allergen – алергени поврзани со состојки и корисници
  • preferences – поставки поврзани со корисник (калории, време, итн.)

Релации

  • 1:1
  • user → preferences (еден корисник има една преференца)
  • 1:N
  • recipe → instruction (еден рецепт има повеќе чекори)
  • instruction → instruction_media (еден чекор има повеќе медиуми)
  • user → forumpost (еден корисник може да има повеќе постови)
  • N:M (преку посредни табли)
  • user ↔ role (user_role)
  • user ↔ allergen (user_allergen)
  • recipe ↔ category (recipe_category)
  • recipe ↔ tags (recipe_tags)
  • recipe ↔ ingredient (recipe_ingredient)
  • preferences ↔ cuisine (preferences_cuisine)

Форум и интеракции

  • forumpost – постови креирани од корисници (може да се поврзат со рецепт)
  • forumpost_like – корисници можат да лајкнуваат постови
  • forumpost_comment – коментари со поддршка за вложени (nested) одговори

User–Recipe активности

  • recipe_favorite – омилени рецепти
  • recipe_attempt – рецепти кои корисник ги пробал
  • recipe_review – оценка и коментар (само ако постои attempt)
  • recipe_view – следење на прегледи
  • recipe_dislike – рецепти кои не му се допаѓаат на корисникот

Ограничувања и интегритет

  • PRIMARY KEY и FOREIGN KEY за поврзување на табелите
  • UNIQUE за спречување дупликати
  • CHECK constraints (валиден email, password правила, вредности)
  • ON DELETE CASCADE / RESTRICT / SET NULL за контрола при бришење

Заклучок

Дизајнот е нормализиран и овозможува флексибилно управување со податоци, како и поддршка за сложени релации и кориснички интеракции.

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.