c95bc4cd44
- Add mcp.md to: bg, fa, ru, tr, zh, ar - Add index.md to Bulgarian (bg) - Add 24 missing German (de) documentation files Translations for all supported languages now complete.
56 lines
1.1 KiB
Markdown
56 lines
1.1 KiB
Markdown
# Schema-System
|
|
|
|
BaraDB verwendet ein Schema-first Design mit Typvererbung und automatischen Migrationen.
|
|
|
|
## Typen definieren
|
|
|
|
```nim
|
|
import barabadb/schema/schema
|
|
|
|
var s = newSchema()
|
|
|
|
let person = newType("Person")
|
|
person.addProperty("name", "str", required = true)
|
|
person.addProperty("age", "int32")
|
|
s.addType("default", person)
|
|
```
|
|
|
|
## Typvererbung
|
|
|
|
```nim
|
|
let employee = newType("Employee")
|
|
employee.setBases(@["Person"])
|
|
employee.addProperty("department", "str")
|
|
s.addType("default", employee)
|
|
|
|
# Vererbung auflösen — Employee erhält name, age, department
|
|
let resolved = s.resolveInheritance(employee)
|
|
```
|
|
|
|
## Schema-Operationen
|
|
|
|
### Diff
|
|
|
|
Zwei Schemata vergleichen:
|
|
|
|
```nim
|
|
let diff = s.diff(oldSchema, newSchema)
|
|
```
|
|
|
|
### Migrationen
|
|
|
|
Schema-Änderungen werden verfolgt und können Migrationsskripte generieren.
|
|
|
|
## Eigenschaftstypen
|
|
|
|
| Typ | Beschreibung |
|
|
|------|-------------|
|
|
| `str` | String |
|
|
| `int32` | 32-Bit Integer |
|
|
| `int64` | 64-Bit Integer |
|
|
| `float32` | 32-Bit Float |
|
|
| `float64` | 64-Bit Float |
|
|
| `bool` | Boolean |
|
|
| `datetime` | Datums-/Zeitwert |
|
|
| `bytes` | Binärdaten |
|