Skip to content

데이터베이스 설계 ​

개요 ​

Memesplora는 데이터베이스 관리를 위해 ent ORM을 사용하며, SQLite(개발) 및 PostgreSQL(프로덕션)을 지원합니다. 데이터베이스는 메타데이터만 저장하며, 실제 파일 내용은 메모리 내 파일시스템에 저장됩니다.

스키마 ​

사용자 ​

  • id, username (고유), email (고유), password, nickname
  • group_id, storage_used, max_storage, is_admin
  • created_at, updated_at

공간 ​

  • id, name, description, total_size, used_size
  • block_size, device_id, device_type, status
  • owner_id (FK → User), created_at, updated_at

파일 ​

  • id, name, path, size, type, mime_type
  • inode_id, parent_id, storage_key, is_shareable
  • space_id (FK → Space), created_at, updated_at, deleted_at (소프트 삭제)

공유 ​

  • id, share_key (고유), download_limit, download_count
  • expire_at, is_password, password
  • owner_id (FK → User), space_id (FK → Space), file_id (FK → File)
  • created_at

데이터베이스 선택 ​

환경데이터베이스비고
개발SQLite설정 불필요, 파일 기반
단일 사용자SQLite단일 사용자 시나리오에 적합
프로덕션PostgreSQL동시성 지원, 다중 사용자

Apache License 2.0