> ## Documentation Index
> Fetch the complete documentation index at: https://doc.eazemyapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Database schema

# Database Schema in EazeMyAPI

In EazeMyAPI, your backend is structured using **database tables**.
Each table represents a collection of related data and automatically generates APIs for interacting with that data.

Instead of manually coding backend endpoints, you simply define your **database schema**, and EazeMyAPI generates the API automatically.

***

## What is a Database Schema?

A **database schema** defines how your data is structured.

It includes:

* Tables
* Fields
* Field types
* Relationships between tables

### Example Schema (Users Table)

| Field       | Type      |
| ----------- | --------- |
| id          | NUMBER    |
| name        | TEXT      |
| email       | EMAIL     |
| phone       | PHONE     |
| bio         | PARAGRAPH |
| is\_active  | BOOLEAN   |
| created\_at | DATETIME  |

***

## Example Record

Example data stored in the **users** table:

```json theme={null}
{
  "id": 1,
  "name": "Dara Singh",
  "email": "dara@example.com",
  "phone": "+91 9876543210",
  "bio": "Founder",
  "is_active": true,
  "created_at": "2026-03-10T10:30:00Z"
}
```

***

## Automatic API Generation

Once a table is created, EazeMyAPI automatically generates APIs for it.

### Generated Endpoints (users table)

```
GET    /{project}/users/{version}/list
POST   /{project}/users/{version}/create
POST   /{project}/users/{version}/update/{id}
DELETE /{project}/users/{version}/delete/{id}
```

These APIs allow you to perform standard **CRUD operations**.

* Create data
* Read data
* Update data
* Delete data

***

## Example API Endpoint

```
https://api.eazemyapi.com/demo-project/users/v1/list
```

### Example Request

```bash theme={null}
curl https://api.eazemyapi.com/demo-project/users/v1/list \
  -H "X-API-SIGNATURE: your-secret-key"
```

***

## Multiple Tables Example

### Users Table

| Field       | Type     |
| ----------- | -------- |
| id          | NUMBER   |
| name        | TEXT     |
| email       | EMAIL    |
| created\_at | DATETIME |

### Posts Table

| Field       | Type      |
| ----------- | --------- |
| id          | NUMBER    |
| title       | TEXT      |
| content     | PARAGRAPH |
| user\_id    | NUMBER    |
| created\_at | DATETIME  |

***

## Table Relationships

Tables can be connected using **relationships**.

### Example

```
users
  ↓
posts
```

```
posts.user_id → users.id
```

This means each post belongs to a specific user.

***

## Best Practices for Schema Design

When designing database tables in EazeMyAPI:

* Keep each table focused on one type of data
* Use clear and descriptive field names
* Use proper field types for validation
* Create relationships when data is connected

A well-designed schema makes your backend **easier to maintain and scale**.

***

## Related Documentation

Learn about supported field types:

[Field Types](/docs/field-types)

***

## Next Step

Now learn how APIs are generated automatically.

[How EazeMyAPI Works](/docs/how-eazemyapi-works)
