Files
databases.softwareshinobi.com/landing/docs/monacomotors.md

129 lines
8.0 KiB
Markdown
Raw Normal View History

2025-06-19 12:14:28 -04:00
# Monaco Motors
## Schema Overview
The Monaco Motors database centralizes all critical business data, enabling efficient management of sales, customer information, vehicle inventory, and dealership operations.
## Table Summary
| Table Name | Primary Responsibility |
| :--------- | :--------------------- |
| `Customer` | Stores essential customer contact and identification details. |
| `Deal` | Records each vehicle sales transaction, linking customers, agents, vehicles, and insurance. |
| `Dealership` | Defines the various dealerships, associating them with distributors and geographic regions. |
| `Distributor` | Catalogs the vehicle distributors, providing their unique identifiers and names. |
| `Insurance` | Contains details about insurance policies associated with vehicle deals. |
| `Manager` | Manages information for dealership managers, including their assigned dealership and distributor. |
| `Region` | Maps geographic regions to their respective ZIP codes and names. |
| `Sales_Agent` | Houses details for sales agents, including their manager and assigned dealership. |
| `Vehicle` | Maintains the inventory of vehicles, capturing their specifications, dealership, and pricing. |
## `Customer` Table
This table stores comprehensive customer information, critical for sales tracking, communication, and relationship management.
| Column Name | Data Type | Description |
| :---------- | :-------- | :---------- |
| `CustomerID` | CHAR(8) | Unique identifier for this entity. Used for all lookups and relationships. |
| `AgentID` | CHAR(8) | Establishes a relationship with `Sales_Agent.AgentID`. Essential for data integrity and joins. |
| `CustFirstName` | VARCHAR(15) | The customer's first name. |
| `CustLastName` | VARCHAR(15) | The customer's last name. |
| `PhoneNumber` | VARCHAR(12) | The customer's primary phone number. |
| `Email` | VARCHAR(40) | The customer's email address. |
## `Deal` Table
This table records every completed vehicle transaction, linking all involved entities and providing a historical record of sales.
| Column Name | Data Type | Description |
| :---------- | :-------- | :---------- |
| `DealID` | CHAR(5) | Unique identifier for this entity. Used for all lookups and relationships. |
| `VehicleID` | CHAR(3) | Establishes a relationship with `Vehicle.VehicleID`. Essential for data integrity and joins. |
| `AgentID` | CHAR(8) | Establishes a relationship with `Sales_Agent.AgentID`. Essential for data integrity and joins. |
| `CustomerID` | CHAR(8) | Establishes a relationship with `Customer.CustomerID`. Essential for data integrity and joins. |
| `InsuranceID` | CHAR(5) (Optional) | Establishes a relationship with `Insurance.InsuranceID`. Essential for data integrity and joins. Mandates explicit `null` handling in Java code. |
| `DealDate` | DATE | The date the deal was closed. Map to `java.time.LocalDate` for modern date/time handling. |
## `Dealership` Table
This table defines each dealership within the Monaco Motors ecosystem, including its geographic and distribution affiliations.
| Column Name | Data Type | Description |
| :---------- | :-------- | :---------- |
| `DealershipID` | CHAR(5) | Unique identifier for this entity. Used for all lookups and relationships. |
| `DistributorID` | CHAR(8) | Establishes a relationship with `Distributor.DistributorID`. Essential for data integrity and joins. |
| `RegionID` | CHAR(3) | Establishes a relationship with `Region.RegionID`. Essential for data integrity and joins. Part of a composite foreign key. |
| `RegionZIP` | CHAR(5) | Establishes a relationship with `Region.RegionZIP`. Essential for data integrity and joins. Part of a composite foreign key. |
| `DealershipName` | VARCHAR(40) | The official name of the dealership. |
## `Distributor` Table
This table lists all vehicle distributors that supply to Monaco Motors dealerships.
| Column Name | Data Type | Description |
| :---------- | :-------- | :---------- |
| `DistributorID` | CHAR(8) | Unique identifier for this entity. Used for all lookups and relationships. |
| `DistributorName` | VARCHAR(40) | The name of the vehicle distributor. |
## `Insurance` Table
This table stores details about the insurance policies associated with vehicle deals, including policy types and renewal dates.
| Column Name | Data Type | Description |
| :---------- | :-------- | :---------- |
| `InsuranceID` | CHAR(5) | Unique identifier for this entity. Used for all lookups and relationships. |
| `PolicyType` | VARCHAR(15) | Describes the type of insurance policy (e.g., "Full Coverage", "Liability"). |
| `RenewalDate` | DATE | The date the insurance policy is due for renewal. Map to `java.time.LocalDate` for modern date/time handling. |
## `Manager` Table
This table contains information about the managers overseeing dealerships, including their salary and bonus details.
| Column Name | Data Type | Description |
| :---------- | :-------- | :---------- |
| `ManagerID` | CHAR(8) | Unique identifier for this entity. Used for all lookups and relationships. |
| `DealershipID` | CHAR(5) | Establishes a relationship with `Dealership.DealershipID`. Essential for data integrity and joins. |
| `DistributorID` | CHAR(8) | Establishes a relationship with `Distributor.DistributorID`. Essential for data integrity and joins. |
| `MngrFirstName` | VARCHAR(15) | The manager's first name. |
| `MngrLastName` | VARCHAR(15) | The manager's last name. |
| `MngrSalary` | DECIMAL(8,2) | The manager's annual salary. Map to `java.math.BigDecimal` for financial values to ensure precision. |
| `MngrBonus` | DECIMAL(8,2) (Optional) | The manager's annual bonus. Map to `java.math.BigDecimal` for financial values to ensure precision. Mandates explicit `null` handling in Java code. |
## `Region` Table
This table defines geographic regions by their ID, ZIP code, and descriptive name.
| Column Name | Data Type | Description |
| :---------- | :-------- | :---------- |
| `RegionID` | CHAR(3) | Unique identifier for this entity, part of a composite primary key. Used for all lookups and relationships. |
| `RegionZIP` | CHAR(5) | The ZIP code associated with the region, part of a composite primary key. Used for all lookups and relationships. |
| `RegionName` | VARCHAR(15) | The descriptive name of the region (e.g., "EMEA", "APJ", "AMS"). |
## `Sales_Agent` Table
This table stores details for each sales agent, including their reporting manager and assigned dealership.
| Column Name | Data Type | Description |
| :---------- | :-------- | :---------- |
| `AgentID` | CHAR(8) | Unique identifier for this entity. Used for all lookups and relationships. |
| `ManagerID` | CHAR(8) | Establishes a relationship with `Manager.ManagerID`. Essential for data integrity and joins. |
| `DealershipID` | CHAR(5) | Establishes a relationship with `Dealership.DealershipID`. Essential for data integrity and joins. |
| `AgentFirstName` | VARCHAR(15) | The sales agent's first name. |
| `AgentLastName` | VARCHAR(15) | The sales agent's last name. |
| `AgentSalary` | DECIMAL(9,2) | The sales agent's annual salary. Map to `java.math.BigDecimal` for financial values to ensure precision. |
## `Vehicle` Table
This table details the vehicle inventory, including specifications, pricing, and associated dealerships and distributors.
| Column Name | Data Type | Description |
| :---------- | :-------- | :---------- |
| `VehicleID` | CHAR(3) | Unique identifier for this entity. Used for all lookups and relationships. |
| `DealershipID` | CHAR(5) | Establishes a relationship with `Dealership.DealershipID`. Essential for data integrity and joins. |
| `DistributorID` | CHAR(8) | Establishes a relationship with `Distributor.DistributorID`. Essential for data integrity and joins. |
| `Make` | VARCHAR(40) | The manufacturer of the vehicle. |
| `Model` | VARCHAR(40) | The specific model of the vehicle. |
| `BodyType` | VARCHAR(40) | The body style of the vehicle (e.g., "Coupe", "SUV", "Spyder"). |
| `ModelYear` | INT | The manufacturing year of the vehicle. |
| `Price` | DECIMAL(9,2) | The selling price of the vehicle. Map to `java.math.BigDecimal` for financial values to ensure precision. |