wiki:RelationalModel

Version 9 (modified by 231072, 11 days ago) ( diff )

--

Релационен модел

Опис

Основата на системот е ентитетот AppUser, кој ги претставува сите корисници во системот. Секој корисник може да има повеќе адреси (UserAddress), да објавува и купува производи (Product) и да комуницира со други корисници преку chat систем (Conversation и Message).

Производите(Product) се организирани преку Category - која може да биде главна категорија или пак поткатерија(има parent category). Секоја категорија си има посебни атрибути кои се специфични само за неа и се чуваат во табела(CategoryAttributes). Во табелата Product се чуваат основните атрибути кои се заеднички за сите продукти, а атрибутите кои не се заеднички т.е. се специфични за соодветната категорија во која припаѓа продуктот се чуваат во посебна табела(ProductAttributes). За секој производ се чуваат и дополнителни информации како слики (ProductImages), статистики (ProductStats) и прегледи (ProductViews).

Секој корисник кој сака да стане продавач(seller) мора да се верифицира и да плати соодветен пакет. Табелата Package ги дефинира сите достапни пакети што платформата ги нуди. Секој пакет има јасно дефинирани карактеристики како цена, валута, времетраење и ниво на видливост (BASIC, STANDARD, PREMIUM). Табелата UserPackages чува информации за тоа кој пакет е активен кај одреден продавач(или порано бил), како и временскиот период на неговата важност (start_date и end_date).

Корисникот може да додадава продукти во сопствена листа favorites кои се чуваат во табелата Favorites. Системот поддржува e-commerce функционалности преку додавање на производи кој сакаме да ги купиме во кошничка(табелата Cart) а соодветните продукти се чуваат во табелата CartItems. Кога корисникот ќе реши дека сака да ги купи производите ставени во cart, автоматски се креира нарачка(во табелата Order), a сите Cart Items од соодветната cart се префрлаат во OrderItems - табела која трајно ги чува сите продукти од секоја нарачка.

Плаќањата се чуваат во табелата Payments, но едно наше плаќање значи плаќање на сите продукти од цела кошничка наеднаш. Потребно е парите да се распределат на секој seller соодветно. Посебните трансакции кон секој seller се чуваат во табелата Transaction. Сите информации поврзани со плаќања исто така се чуваат трајно. Во Payments се чуваат и плаќањата на UserPackages.

Чуваме курири т.е. карга со кои соработуваме во табелата Carriers. Доставите на нарачки се чуваат во табелата Shipment која чува информации за соодвното карго, соодветната нарачка и соодветната адреса UserAddress која корисникот ја одбрал за доставата.

Корисниците можат да оставаат review за продукт и продавач само после извршена нарачка за соодветниот продукт или било кој продукт од соодветниот продавач. Тие се чуваат во табелата Reviews. Табелата Badge ги дефинира сите можни награди/ознаки што може да ги добие еден корисник. Ги добива според reviews, време активно на апликацијата и број на продажби. Добиените награди се чуваат во табелата UserBadges.

Табелата SavedSearches служи за зачувување на критериуми за пребарување дефинирани од корисникот со цел да добие извесување веднаш кога ќе се појави продукт според неговите барања. Преку табелата SavedSearchesAttributes системот поддржува и специфични филтри базирани на атрибути на категоријата (пр: боја, бренд, големина), што овозможува многу попрецизно пребарување.

Табелата Notifications се користи за испраќање автоматски известувања до корисниците. Овие известувања може да бидат поврзани со различни настани во системот, како:

  • појава на нов оглас што одговара на зачувано пребарување
  • промени кај омилени (favorites) производи
  • пораки од други корисници
  • ажурирање на статус на нарачка или достава.

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.