wiki:RelationalModel

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

Last modified 12 days ago Last modified on 04/20/26 15:00:57

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.