νμ λ³ν κ°μ
νλ νμ
Entity Prop β TypeScript Type μλ λ³ν λ° νμ
μμ μ±
Nullable μ§μ
nullable: true β T | null μ νμ null μ²λ¦¬
Array νμ
type[] β T[] λ°°μ΄ νμ
μλ μμ±
Relation νμ
BelongsToOne β number (FK) κ΄κ³ νλ νμ
λ³ν
κΈ°λ³Έ νμ λ³ν
Entityμ κ° νλ νμ μ΄ TypeScript νμ μΌλ‘ μ΄λ»κ² λ³νλλμ§ λ³΄μ¬μ€λλ€.μ«μ νμ
bigInteger vs integer: IDλ μΉ΄μ΄νΈλ
integerλ‘ μΆ©λΆνμ§λ§, νμμ€ν¬ν(milliseconds)λ λ§€μ°
ν° μ«μλ bigIntegerλ₯Ό μ¬μ©νμΈμ.λ¬Έμμ΄ νμ
λΆλ¦° νμ
λ μ§ νμ
UUID νμ
TypeScriptμλ UUID μ μ© νμ
μ΄ μμΌλ―λ‘
stringμΌλ‘ ννλ©λλ€. Zod validationμμ .uuid()λ‘
νμμ κ²μ¦ν©λλ€.μ«μ μ λ°λ νμ
PostgreSQLμ κ³ μ λ° μ«μλ₯Ό λ€λ£¨λ λ κ°μ§ νμ μ λλ€.number vs numeric
Enum νμ
Entityμ Enumμ΄ TypeScript Union νμ μΌλ‘ λ³νλ©λλ€.- μλμμ± μ§μ
- νμ μμ μ± λ³΄μ₯
- μλͺ»λ κ° μ»΄νμΌ μλ¬
JSON νμ
볡μ‘ν κ°μ²΄ ꡬ쑰λ₯Ό JSONμΌλ‘ μ μ₯ν λ μ¬μ©ν©λλ€.json νμ
μ idλ‘ μ§μ ν Zod μ€ν€λ§λ₯Ό μ°Έμ‘°ν©λλ€. μ΄ μ€ν€λ§λ {entity} .types.tsμμ μ§μ μ μν΄μΌ ν©λλ€.Virtual νμ
λ°μ΄ν°λ² μ΄μ€μ μ μ₯λμ§ μλ κ³μ° νλμ λλ€.Vector νμ
λ²‘ν° κ²μ (pgvector)μ μν νμ μ λλ€.dimensionsλ TypeScript νμ
μ μν₯μ μ£Όμ§ μμ§λ§, PostgreSQL μ€ν€λ§μ Zod validationμμ μ¬μ©λ©λλ€.Relation νμ
Entity κ° κ΄κ³λ₯Ό λνλ΄λ νλμ λλ€.BelongsToOne (λ€λμΌ)
OneToOne (μΌλμΌ)
HasMany / ManyToMany
HasManyμ ManyToManyλ base νμ
μ ν¬ν¨λμ§ μμ΅λλ€. Subsetμ μ μνλ©΄ ν΄λΉ νμ
μ΄ Subset
νμ
μ ν¬ν¨λ©λλ€.Nullable μ²λ¦¬
nullable: trueλ TypeScript Union νμ
μΌλ‘ λ³νλ©λλ€.
νμ λ³ν μ 체 λ§€ν
λͺ¨λ Entity Prop νμ κ³Ό TypeScript νμ μ λ§€ννμ λλ€.μ€μ μμ
μ€μ User Entityμ νμ λ³ν μμμ λλ€.λ€μ λ¨κ³
Generated Types
μμ±λλ νμ
λ€μ μ’
λ₯μ μ©λ
Zod Validation
Zodλ‘ λ°νμ κ²μ¦νκΈ°
E2E Type Safety
μλν¬μλ νμ
μμ μ±
Field Types
Entity νλ νμ
μ 체 λ νΌλ°μ€