팀 단위 SaaS를 만들고 있고 사용자는 여러 워크스페이스에 동시에 속할 수 있습니다. `workspaces`, `memberships`, `projects`, `files`, `ai_job_runs` 테이블이 있습니다.
지금은 모든 테이블에 `workspace_id`를 두고 RLS에서 membership을 확인하는 방식으로 설계했습니다. 다만 댓글, 알림, AI 작업 로그처럼 프로젝트를 통해 간접 연결되는 테이블은 정책이 길어져 유지보수가 걱정됩니다.
실제 운영 경험이 있는 분들은 모든 테이블에 workspace_id를 중복 저장하는 편인지, 보안 뷰나 RPC로 쓰기 경로를 제한하는 편인지 궁금합니다. 마이그레이션 이후에도 실수하기 어려운 구조가 목표입니다.