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)
- RelationalModel1.svg (371.6 KB ) - added by 12 days ago.
- RelationalModel-cooksy.vpp (956.0 KB ) - added by 12 days ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.
