> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# User スキーマ

> アプリ用の追加フィールドで組み込みの User エンティティを拡張します。

<div className="dev-docs-banner">
  <div className="dev-docs-banner-content">
    <div className="dev-docs-banner-title">
      開発者向けドキュメントを表示しています
    </div>

    <div className="dev-docs-banner-text">
      このドキュメントは、Base44 開発者プラットフォームで作業する開発者向けです。アプリエディタを使用したアプリデータの管理については、<a href="/Building-your-app/Managing-your-app-data">アプリデータの管理</a>を参照してください。
    </div>
  </div>
</div>

User エンティティはデフォルトですべての Base44 プロジェクトに存在し、アプリのユーザーに関する情報を保存します。フィールドを追加して追加のユーザーデータを保存し、それらのフィールドを[セキュリティルール](/developers/backend/resources/entities/security)で使用してデータアクセスを制御したり、アプリ内でエクスペリエンスをパーソナライズしたりできます。

## 組み込みフィールド

すべての User エンティティには、デフォルトで一連の組み込みフィールドが含まれています。

| フィールド       | 型      | 説明                 |
| ----------- | ------ | ------------------ |
| `full_name` | string | ユーザーの表示名           |
| `email`     | string | ユーザーのメールアドレス       |
| `role`      | string | `admin` または `user` |

User エンティティには、`id` や `created_date` など、すべてのエンティティに存在する[一般的な組み込みフィールド](/developers/backend/resources/entities/entity-schemas#built-in-fields)もあります。

これらのフィールドはシステムによって管理されており、スキーマで再定義することはできません。

## カスタムフィールド

カスタムフィールドを追加するには、追加フィールドのみを含む User スキーマを定義します。組み込みフィールドを再定義しようとすると、検証エラーが発生します。

プロジェクトの entities ディレクトリに `User.json` または `User.jsonc` ファイルを作成します。デフォルトでは `base44/entities/` ですが、[プロジェクト構成](/developers/backend/overview/project-structure#configjsonc)でパスをカスタマイズできます。

```json entities/User.json theme={null}
{
  "type": "object",
  "properties": {
    "company": { "type": "string" },
    "phone": { "type": "string" },
    "job_title": { "type": "string" },
    "bio": { 
      "type": "string",
      "maxLength": 500
    }
  },
  "required": ["company"]
}
```

その後、[`entities push`](/developers/references/cli/commands/entities-push) または [`deploy`](/developers/references/cli/commands/deploy) を使用してエンティティを Base44 にプッシュします。

## 完全な例

さまざまなフィールドタイプを持つ完全な User スキーマ:

```json theme={null}
{
  "type": "object",
  "properties": {
    "company": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "job_title": {
      "type": "string",
      "maxLength": 100
    },
    "bio": {
      "type": "string",
      "maxLength": 500
    },
    "website": {
      "type": "string",
      "format": "uri"
    },
    "preferences": {
      "type": "object",
      "properties": {
        "theme": {
          "type": "string",
          "enum": ["light", "dark"],
          "default": "light"
        },
        "notifications": {
          "type": "boolean",
          "default": true
        }
      }
    }
  },
  "required": ["company"]
}
```

## フィールドの使用

User スキーマを定義してプッシュしたら、セキュリティルールでフィールドを参照し、アプリコードでアクセスできます。

### セキュリティルール内

ユーザーフィールドを使用して、他のエンティティへのアクセスを制御できます。例えば、ユーザーが自分の会社に属するレコードのみを表示できるように制限できます。

[セキュリティルール](/developers/backend/resources/entities/security)でユーザーフィールドを参照するには、`{{user.data.*}}` テンプレート構文を使用します:

```json theme={null}
{
  "rls": {
    "read": {"data.company": "{{user.data.company}}"},
    "update": {"data.company": "{{user.data.company}}"}
  }
}
```

このルールにより、ユーザーはレコードの `company` フィールドが自分のものと一致するレコードのみを読み取り、更新できます。

### コード内

[SDK](/developers/references/sdk/getting-started/overview) を介してユーザーフィールドにアクセスします:

```typescript theme={null}
// Get current user's fields
const currentUser = await base44.auth.me();
console.log(currentUser.company); // "Acme Inc"

// Update current user's fields
await base44.auth.updateMe({
  phone: "+1-555-0123",
  job_title: "Senior Developer"
});

// List all users with service role (backend functions only)
const allUsers = await base44.asServiceRole.entities.User.list();
```

<Info>
  この例では `base44` クライアントを使用しています。セットアップ手順については、[クライアントのセットアップ](/developers/references/sdk/getting-started/client)を参照してください。
</Info>

## 関連項目

* [Entities Overview](/developers/backend/resources/entities/overview): データベーススキーマ構成について学ぶ
* [Entity Schemas](/developers/backend/resources/entities/entity-schemas): エンティティ構造を定義
* [Security](/developers/backend/resources/entities/security): 行レベルセキュリティルールを構成
* [Project Structure](/developers/backend/overview/project-structure): エンティティスキーマがプロジェクトにどう適合するか

<Note>このページは AI を使用して翻訳されました。最も正確で最新の情報については、[英語版](/) を参照してください。 </Note>
