# データベース設計書

## 概要

本ドキュメントは、oh-my-zshプロジェクトにおけるデータベース設計に関する情報を記載するものです。

**重要**: oh-my-zshプロジェクトは、Zshシェル設定フレームワークであり、**データベースを使用していません**。本プロジェクトは以下の特性を持つシェルスクリプトベースのツールです：

- Zshシェル設定の管理フレームワーク
- プラグインとテーマのコレクション
- 設定ファイル（.zshrc）ベースの管理
- ファイルシステムを介した永続化（データベース不使用）

## テーブル一覧

| テーブル名 | 対応エンティティ | 説明 |
| --- | --- | --- |
| (該当なし) | - | 本プロジェクトはデータベースを使用していません |

## データ永続化の仕組み

oh-my-zshプロジェクトでは、データベースの代わりに以下のファイルベースの仕組みを使用しています：

### 1. 設定ファイル

| ファイル/ディレクトリ | 説明 |
| --- | --- |
| `~/.zshrc` | ユーザー設定ファイル（プラグイン、テーマ、環境変数等の設定） |
| `~/.oh-my-zsh/` | インストールディレクトリ |
| `~/.oh-my-zsh/custom/` | カスタムプラグイン、テーマ、設定の格納場所 |

### 2. キャッシュファイル

| ファイル/ディレクトリ | 説明 |
| --- | --- |
| `cache/` | 各種キャッシュデータの格納ディレクトリ |
| `log/` | ログファイルの格納ディレクトリ |

### 3. プラグイン固有のストレージ

一部のプラグインは独自のデータ永続化機構を持っています：

| プラグイン | ストレージ方式 |
| --- | --- |
| `z` | `~/.z` ファイル（ディレクトリ履歴） |
| `history` | `~/.zsh_history` ファイル（コマンド履歴） |

## 各テーブル定義

本プロジェクトはデータベースを使用していないため、テーブル定義はありません。

## データベース関連プラグイン

oh-my-zshには、外部データベースシステムを操作するためのヘルパープラグインが含まれています。これらはoh-my-zsh自体のデータベースではなく、外部ツールのエイリアスや補完機能を提供するものです。

### PostgreSQL関連（postgresプラグイン）

| エイリアス | コマンド | 説明 |
| --- | --- | --- |
| `startpost` | `pg_ctl -D $PG_BREW_DIR -l $PG_BREW_DIR/server.log start` | PostgreSQLサーバー起動 |
| `stoppost` | `pg_ctl -D $PG_BREW_DIR stop -s -m fast` | PostgreSQLサーバー停止 |
| `restartpost` | `stoppost && sleep 1 && startpost` | PostgreSQLサーバー再起動 |
| `reloadpost` | `pg_ctl reload -D $PG_BREW_DIR -s` | PostgreSQL設定リロード |
| `statuspost` | `pg_ctl status -D $PG_BREW_DIR -s` | PostgreSQLサーバーステータス確認 |

### MySQL関連（mysql-macportsプラグイン）

| エイリアス | コマンド | 説明 |
| --- | --- | --- |
| `mysqlstart` | `sudo /opt/local/share/mysql5/mysql/mysql.server start` | MySQLサーバー起動 |
| `mysqlstop` | `sudo /opt/local/share/mysql5/mysql/mysql.server stop` | MySQLサーバー停止 |
| `mysqlrestart` | `sudo /opt/local/share/mysql5/mysql/mysql.server restart` | MySQLサーバー再起動 |
| `mysqlstatus` | `mysqladmin5 -u root -p ping` | MySQLサーバーステータス確認 |

## 備考

1. **本プロジェクトはデータベースを必要としません**: oh-my-zshは完全にファイルベースで動作するシェル設定フレームワークです。

2. **データベースプラグインの目的**: プロジェクトに含まれるデータベース関連プラグインは、ユーザーが自身のシステムにインストールした外部データベースシステムを便利に操作するためのエイリアス集であり、oh-my-zsh自体のデータストレージには使用されません。

3. **永続化方式**: 全ての設定と状態はファイルシステム上のテキストファイルとして管理されます。

4. **移行性**: データベースが不要なため、設定ファイルのコピーのみでユーザー設定を別の環境に移行できます。
