ER Diagram Sample for Ecommerce Project
Tags: database, node, sql, documentation
Published: 2024-03-09 20:28:41

## Entity-Relationship Diagram (ERD)

An ERD is a visual representation of the data model that represents the structure of a database. It is a powerful tool used in database design to illustrate the logical structure of a database in a graphical way. ERDs are particularly useful in understanding the relationships between different entities in a system.

## ERD diagram concepts

**Entities:** Entities are objects or concepts that are represented in the database and are typically nouns. For example, in a university database, entities might include Student, Course, and Professor.

**Attributes:** Attributes are properties or characteristics that describe the entities. For example, a Student entity may have attributes like StudentID, Name, and DateOfBirth.

**Relationships:** Relationships depict how entities are related to each other. They establish connections between entities and can be one-to-one, one-to-many, or many-to-many. For instance, a Student entity might be related to a Course entity in a "takes" relationship.

**Cardinality:** Cardinality defines the numerical relationship between entities in a relationship. It indicates how many instances of one entity are related to another. Common cardinalities include one-to-one (1:1), one-to-many (1:N), and many-to-many (M:N).

**Primary Key:** A primary key is a unique identifier for a record within an entity. It helps ensure each record can be uniquely identified.

**Foreign Key:** A foreign key is a field in one table that refers to the primary key in another table. It establishes a link between the two tables.

**Weak Entity:** A weak entity is an entity that cannot be uniquely identified by its own attributes alone and relies on a related entity to provide the identification.

## Identify Main Entities:
**User Entities:**
-Customer
-Administrator
-Seller

**Product Entities:**
-Product
-Category
-Brand

**Order Entities:**
-Order
-Order Item

**Payment Entities:**
-Payment
-Payment Method

#### Identify Attributes:

**Customer Entity Attributes:**
-CustomerID (Primary Key)
-Name
-Email
-Address
-Phone

####Product Entity Attributes:
-ProductID (Primary Key)
-Name
-Price
-Description
-StockQuantity

#### Order Entity Attributes:
-OrderID (Primary Key)
-OrderDate
-TotalAmount
-Status (e.g., pending, shipped)

#### Payment Entity Attributes:
-PaymentID (Primary Key)
-Amount
-PaymentDate
-Status (e.g., successful, pending)

#### Define Relationships:
**Customer-Order Relationship:**
-One customer can place multiple orders (One-to-Many).
-Add a foreign key in the Order entity referring to CustomerID.

**Order-Order Item Relationship:**
-One order can have multiple order items, and each order item belongs to only one order (One-to-Many).
-Add a foreign key in the Order Item entity referring to OrderID.

**Product-Order Item Relationship:**
-One product can be included in multiple order items, and each order item is associated with one product (Many-to-One).
-Add a foreign key in the Order Item entity referring to ProductID.

**Customer-Payment Relationship:**
-One customer can make multiple payments (One-to-Many).
-Add a foreign key in the Payment entity referring to CustomerID.

#### Cardinality:
**Customer-Order Cardinality:**
-One customer can place many orders, but each order is placed by one customer.
**Order-Order Item Cardinality:**
-One order can have many order items, but each order item belongs to one order.
**Product-Order Item Cardinality:**
-One product can be in many order items, but each order item is associated with one product.
**Customer-Payment Cardinality:**
-One customer can make many payments, but each payment is made by one customer.

## Final ERD

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/msi74jhs0xq8om6urtzq.png)


[Entity–relationship model](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model)