Initial commit: VoIdeaAI - voice-first AI idea assistant
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# Выбор базы данных
|
||||
|
||||
---
|
||||
|
||||
## Decision Tree
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[Какую БД?] --> B{Многопользовательская?}
|
||||
B -->|Нет / прототип| C[SQLite]
|
||||
B -->|Да| D{Нужен JSONB?}
|
||||
D -->|Да| E[PostgreSQL]
|
||||
D -->|Нет| F{Нужен full-text search?}
|
||||
F -->|Да| E
|
||||
F -->|Нет| G[SQLite / PostgreSQL]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Варианты
|
||||
|
||||
### SQLite
|
||||
| | |
|
||||
|---|---|
|
||||
| **Когда** | Прототип, dev, однопользовательское |
|
||||
| **Плюсы** | Не требует установки, встроенная, ноль конфигурации |
|
||||
| **Минусы** | Нет конкурентной записи, нет JSONB, нет ARRAY, нет полнотекстового поиска |
|
||||
| **Драйвер** | aiosqlite |
|
||||
|
||||
### PostgreSQL
|
||||
| | |
|
||||
|---|---|
|
||||
| **Когда** | Production, многопользовательское, аналитика |
|
||||
| **Плюсы** | ACID, JSONB, ARRAY, full-text search, масштабирование |
|
||||
| **Минусы** | Требует установки, настройки, памяти |
|
||||
| **Драйвер** | asyncpg |
|
||||
|
||||
---
|
||||
|
||||
## Рекомендация
|
||||
|
||||
**SQLite для разработки, PostgreSQL для production.**
|
||||
Обе БД поддерживаются через SQLAlchemy с минимальными отличиями в моделях.
|
||||
|
||||
### Что нужно для портабельности
|
||||
|
||||
```python
|
||||
# Вместо PostgreSQL-specific типов используем универсальные:
|
||||
UUID → String(36)
|
||||
JSONB → JSON
|
||||
ARRAY → JSON
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## [ASK]
|
||||
|
||||
- Какая БД нужна на старте? (рекомендация: SQLite)
|
||||
- Когда переходить на PostgreSQL? (перед production)
|
||||
- Нужна ли поддержка обеих БД одновременно? (желательно — unit-тесты на SQLite быстрее)
|
||||
Reference in New Issue
Block a user