コンテンツにスキップ

検索はプロダクションビルドでのみ利用可能です。 ローカルでテストするには、サイトをビルドしてプレビューしてください。

カスタムテーブル

Speakeasy 独自の拡張テーブルです。better-auth の user.email / user.phoneNumber はシステム内部用のユニーク値であるため、ユーザーが実際に入力した連絡先情報をこれらのテーブルで管理します。


ユーザーの実際のメールアドレスを保持するテーブルです。1ユーザーが複数のメールアドレスを登録できます。

カラムNULLデフォルト説明
idtextNOcrypto.randomUUID()主キー
userIdtextNOユーザー ID
emailtextNOメールアドレス
primarybooleanNOfalseプライマリメールフラグ
verifiedbooleanNOfalse確認済みフラグ
createdAttimestamptz(3)NONOW()作成日時
updatedAttimestamptz(3)NONOW()更新日時
名前カラム種別
outerMail_userId_idxuserIdINDEX
outerMail_email_idxemailINDEX

better-auth は user.email をユニーク制約で管理しますが、Speakeasy では以下の理由でメールアドレスを分離しています:

  • 同一メールアドレスで複数ユーザーを作成する可能性(匿名→実名への移行)
  • user.email には XXXX.plfumg.com 形式の内部用ユニークメールを格納
  • ユーザーが入力した実際のメールアドレスは outerMail で管理

ユーザーの実際の電話番号を保持するテーブルです。1ユーザーが複数の電話番号を登録できます。

カラムNULLデフォルト説明
idtextNOcrypto.randomUUID()主キー
userIdtextNOユーザー ID
phoneNumbertextNO電話番号
primarybooleanNOfalseプライマリ電話番号フラグ
verifiedbooleanNOfalse確認済みフラグ
createdAttimestamptz(3)NONOW()作成日時
updatedAttimestamptz(3)NONOW()更新日時
名前カラム種別
outerPhone_userId_idxuserIdINDEX
outerPhone_phoneNumber_idxphoneNumberINDEX

outerMail と同じ設計思想で、user.phoneNumber の内部ユニーク制約とは別に、ユーザーの実際の電話番号を管理します。