SQL
CREATE TABLE students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
trainer_id INTEGER NOT NULL REFERENCES trainers(id) ON DELETE CASCADE,
name TEXT NOT NULL,
email TEXT,
-- für Magic-Link
phone TEXT,
hcpi REAL,
-- Handicap-Index
tags TEXT NOT NULL DEFAULT '[]',
-- JSON-Array: ["Einzel",
"Stamm",
"VIP"]
marketing_consent INTEGER NOT NULL DEFAULT 0,
video_consent INTEGER NOT NULL DEFAULT 0,
video_consent_date TEXT,
notes TEXT,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
status TEXT NOT NULL DEFAULT 'active' -- 'active' | 'archived',
birthday TEXT,
member_since TEXT,
home_club TEXT,
source TEXT,
contact_channel TEXT,
prefs TEXT,
video_consent_granted_at TEXT,
example_note TEXT,
address TEXT
)
Columns
| Column | Data type | Allow null | Primary key | Actions |
|---|---|---|---|---|
id |
INTEGER |
✓ | ✓ | Rename | Drop |
trainer_id |
INTEGER |
Rename | Drop | ||
name |
TEXT |
Rename | Drop | ||
email |
TEXT |
✓ | Rename | Drop | |
phone |
TEXT |
✓ | Rename | Drop | |
hcpi |
REAL |
✓ | Rename | Drop | |
tags |
TEXT |
Rename | Drop | ||
marketing_consent |
INTEGER |
Rename | Drop | ||
video_consent |
INTEGER |
Rename | Drop | ||
video_consent_date |
TEXT |
✓ | Rename | Drop | |
notes |
TEXT |
✓ | Rename | Drop | |
created_at |
TEXT |
Rename | Drop | ||
status |
TEXT |
Rename | Drop | ||
birthday |
TEXT |
✓ | Rename | Drop | |
member_since |
TEXT |
✓ | Rename | Drop | |
home_club |
TEXT |
✓ | Rename | Drop | |
source |
TEXT |
✓ | Rename | Drop | |
contact_channel |
TEXT |
✓ | Rename | Drop | |
prefs |
TEXT |
✓ | Rename | Drop | |
video_consent_granted_at |
TEXT |
✓ | Rename | Drop | |
example_note |
TEXT |
✓ | Rename | Drop | |
address |
TEXT |
✓ | Rename | Drop |
Foreign Keys
| Column | Destination |
|---|---|
trainer_id |
trainers.id |
Indexes
| Name | Columns | Unique | SQL | Drop? |
|---|---|---|---|---|
| idx_students_email |
email
|
SQL | Drop | |
| idx_students_trainer |
trainer_id
|
SQL | Drop |