wiki:ERModel

ER дијаграм

Податочни побарувања

Ентитети

  1. Roles - ентитет кој означува улога на корисник

roleId - нумерички тип (примарен клуч)
roleDescription - текстуален тип (задолжителен атрибут)
roleName - текстуален тип (задолжителен атрибут)

  1. Users - ентитет кој ги дефинира корисниците

userId - нумерички тип (примарен клуч)
userUsername - текстуален тип (задолжителен атрибут)
userPassword - текстуален тип (задолжителен атрибут)
userName - текстуален тип (задолжителен атрибут)
userSurname - текстуален тип (задолжителен атрибут)
userPictureUrl - текстуален тип (опционален атрибут)
userEmail - текстуален тип (задолжителен атрибут)
userPhoneNumber - текстуален тип (задолжителен атрибут)

  1. Manufacturers - ентитет кој ги дефинира производителите на продукти

manufacturerId - нумерички тип (примарен клуч)
manufacturerName - текстуален тип (задолжителен атрибут)
manufacturerCountry - текстуален тип (задолжителен атрибут)

  1. Categories - ентитет кој ја дефинира категоријата на продукти

categoryId - нумерички тип (примарен клуч)
parentCategoryId - нумерички тип (опционален атрибут)
categoryName - текстуален тип (задолжителен атрибут)

  1. Product Characteristics - ентитет кој ги дефинира карактеристиките на продуктот

characteristicId - нумерички тип (примарен клуч)
characteristicDescription - текстуален тип (задолжителен атрибут)

  1. Products - ентитет кој ги дефинира продуктите

productId - нумерички тип (примарен клуч)
productName - текстуален тип (задолжителен атрибут)
postDate - датум (задолжителен атрибут)

  1. User Favourites - ентитет кој дефинира зачуван продукт од страна на корисник

userFavouriteId - нумерички тип (примарен клуч)

  1. User Comments - ентитет кој дефинира коментари за продуктите

commentId - нумерички тип (примарен клуч)
userComment - текстуален тип (задолжителен атрибут)

  1. Ratings - ентитет кој означува оцена за продукт

ratingId - нумерички тип (примарен клуч)
ratingValue - нумерички тип (задолжителен атрибут)

  1. WatchList Products - ентитет кој дефинира зачувани продукти за кои се следи цената

watchListProductId - нумерички тип (примарен клуч)
priceLimit - нумерички тип (задолжителен атрибут)

  1. Product Images - ентитет кој дефинира слики за продуктите

productImageId - нумерички тип (примарен клуч)
productImageUrl - текстуален тип (задолжителен атрибут)

  1. Stores - ентитет кој дефинира продавница

storeId - нумерички тип (примарен клуч)
storeName - текстуален тип (задолжителен атрибут)

  1. Product Instances - ентитет кој дефинира инстанца од продуктот

productInstanceId - нумерички тип (примарен клуч)
productInstancePrice - нумерички тип (задолжителен атрибут)

Релации

belongs_to - N:M релација која ги поврзува ентитетите Categories и Products и означува припадност. Еден продукт може да припаѓа на повеќе категории и една категорија може да содржи повеќе продукти.

has - 1:1 релација која ги поврзува ентитетите Product Characteristics и Products и означува дека еден продукт има една инстанца на одредени карактеристики и една инстанца на карактеристики припаѓа на еден продукт.

produces - 1:N релација која ги поврзува ентитетите Manufacturers и Products и означува дека даден продукт е произведен од еден производител и еден производител може да произведува повеќе продукти.

of - 1:N релација која ги поврзува ентитетите Products и Product Instances и означува инастанцирање. Еден продукт може да има повеќе инстанци, но една инстанца е од само еден продукт.

is - 1:M релација која ги поврзува ентитетите Products и User Favourites и означува зачуван продукт. Еден продукт може да е зачуван продукт и еден зачуван продукт е тип на продукт.

available in - 1:N релација која ги поврзува ентитетите Stores и Product Instances и означува достапност. Една инстанца на продукт може да биде достапна во една продавница, додека една продавница може да има достапни повеќе инстанци на продукт.

retains - 1:N релација која ги поврзува ентитетите Products и Product Images и означува дека еден продукт може да има повеќе слики за него, но една слика припаѓа само на еден продукт.

acts_as - 1:N релација која ги поврзува ентитетите Products и WatchList Products. Еден продукт може да е продукт за следење на цена и еден продукт зачуван за следење е од тип продукт.

receive - 1:N релација која ги поврзува ентитетите Products и Ratings. Еден продукт може да добива повеќе оцени, а една оцена припаѓа на еден продукт.

inholds - 1:N релација која ги поврзува ентитетите Products и User Comments. Еден продукт има повеќе коментари за него, а еден коментар се остава за еден продукт.

has_in_keeping - 1:N релација која ги поврзува Users и User Favourites. Еден корисник може да чува повеќе омилени продукти, додека еден омилен продукт припаѓа на еден корисник.

takes - 1:N релација која ги поврзува Users и Roles. Еден корисник има една улога, а една улога може да ја имаат повеќе корисници.

makes - 1:N релација која ги поврзува Users и Comments. Еден корисник може да остави повеќе коментари и еден коментар е оставен од еден корисник.

writes - 1:N релација која ги поврзува Users и Ratings. Еден корисник може да дава повеќе оцени, а една оцена е напишана и дадена од еден корисник.

holds - 1:N релација која ги поврзува Users и WatchList Products. Еден корисник може да чува повеќе продукти за следење на цена, додека инстанца на еден таков продукт е чуванa од еден корисник.

parent_category - 1:N релација која поврзува ентитетот Categories сам со себе. Една надкатегорија може да има повеќе категории, а една категорија може да припаѓа само на една надкатегорија.

Историјат

Верзија Промени
ERmodel_v1.jpg Иницијална верзија
ERmodel_v2.jpg Промена на неколку релации по препорака на демонстратор
ERmodel_v3.jpg Додавање на тотално учество од страната на ентитетите: Product Instances, Product Images, Ratings и User Favourites
ERmodel_v4.jpg Додавање на релација parent_category
Last modified 18 months ago Last modified on 12/02/22 22:18:24

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.