Version 15 (modified by 2 weeks ago) ( diff ) | ,
---|
Податочни побарувања
Оваа секција ги претставува концептуалниот дизајн на базата на податоци и податочните побарувања.
ЕР Дијаграм
Ентитети
1. Clients
Id – SERIAL (Primary Key) FirstName – VARCHAR(50) (Mandatory attribute) LastName – VARCHAR(50) PhoneNumber – VARCHAR(20)
2. Mechanics
EMBG – VARCHAR(13) (Primary Key) FirstName – VARCHAR(50) (Mandatory attribute) LastName – VARCHAR(50) (Mandatory attribute)
3. Motorcycles
Id – SERIAL (Primary Key) ClientId – INT (Mandatory attribute, Foreign Key to Clients.Id with ON DELETE CASCADE) !Model – VARCHAR(50) (Mandatory attribute) Year – INT ChassisNumber – VARCHAR(50) (Unique) Registration – VARCHAR(20) Kilometers – INT
4. ServiceItems
Id – SERIAL (Primary Key) !Description – TEXT (Mandatory attribute) MeasurementUnit – VARCHAR(20) (Mandatory attribute) PricePerUnit – DECIMAL(10,2) (Mandatory attribute) Tax – DECIMAL(5,2) (Mandatory attribute)
5. Services
Id – SERIAL (Primary Key) MotorcycleId – INT (Mandatory attribute, Foreign Key to Motorcycles.Id with ON DELETE CASCADE) DateOfService – DATE (Mandatory attribute) LaborCost – DECIMAL(10,2) (Mandatory attribute) TotalPrice – DECIMAL(10,2) (Mandatory attribute; calculated manually by the application)
6. ServiceAssignments (Junction Table)
ServiceId – INT (Foreign Key to Services.Id with ON DELETE CASCADE) MechanicEMBG – VARCHAR(13) (Foreign Key to Mechanics.EMBG with ON DELETE CASCADE) ServiceItemId – INT (Foreign Key to ServiceItems.Id with ON DELETE CASCADE) UnitsUsed – DECIMAL(10,2) (Mandatory attribute) Composite Primary Key: (ServiceId, MechanicEMBG, ServiceItemId)
7. ServiceInvoices
Id – SERIAL (Primary Key) ServiceId – INT (Unique, Mandatory attribute, Foreign Key to Services.Id with ON DELETE CASCADE) IssueDate – TIMESTAMP (Mandatory attribute, defaults to NOW()) ImagePath – TEXT (Mandatory attribute)
8. FiscalBills
Id – SERIAL (Primary Key) ServiceInvoiceId – INT (Unique, Mandatory attribute, Foreign Key to ServiceInvoices.Id with ON DELETE CASCADE) IssueDateTime – TIMESTAMP (Mandatory attribute, defaults to NOW()) Description – TEXT DDV – DECIMAL(5,2) (Mandatory attribute) EDB – VARCHAR(15) (Mandatory attribute)
Релации
Client → Motorcycle
1:N – Секој клиент може да има повеќе мотоцикли, но секој мотоцикл припаѓа на еден клиент.
Foreign Key: ClientId во Motorcycle референцира Client.Id.
Motorcycle → Service
1:N – Мотоциклот може да има повеќе сервиси, но секој сервис е поврзан со еден мотоцикл.
Foreign Key: MotorcycleId во Service референцира Motorcycle.Id.
Service ↔ Mechanic ↔ ServiceItem
M:N – Сервисот може да го извршуваат повеќе механичари и да користат повеќе делови, а секој механичар/дел може да се користи во повеќе сервиси.
Јункција: ServiceAssignment ги поврзува Service, Mechanic, и ServiceItem со композитен клуч (ServiceId, MechanicEMBG, ServiceItemId).
Service → ServiceInvoice
1:1 – Секој сервис има точно една фактура, и секоја фактура одговара на еден сервис.
Foreign Key: ServiceId во ServiceInvoice референцира Service.Id.
ServiceInvoice → FiscalBill
1:1 – Секоја сервисна фактура има една фискална сметка, и секоја фискална сметка е поврзана со една фактура.
Foreign Key: ServiceInvoiceId во FiscalBill референцира ServiceInvoice.Id.
Attachments (3)
- ER_Diagram_1.png (244.3 KB ) - added by 6 weeks ago.
- ER_Diagram_2 (53.6 KB ) - added by 3 weeks ago.
- ER_Diagram_2.png (248.6 KB ) - added by 2 weeks ago.
Download all attachments as: .zip