ENUMカラムにランダムな有効値をシードする
定義された値からランダムに選択してSQL ENUMカラムのシードデータを生成します。MySQL ENUM型とVARCHARステータスカラムに対応。
詳細な説明
ENUMとステータスカラムのシーディング
多くのデータベースではENUM型や有効値の限定セットを持つVARCHARカラムを使用します。シードジェネレーターは明示的なMySQL ENUM型とカテゴリカルな値を示唆するカラム名の両方のパターンを処理します。
MySQL ENUMの例
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL,
status ENUM('pending', 'processing', 'shipped', 'delivered', 'cancelled') NOT NULL,
priority ENUM('low', 'medium', 'high') DEFAULT 'medium',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
statusカラムの場合、ジェネレーターはENUM定義を解析し、各行でpending、processing、shipped、delivered、cancelledからランダムに選択します。各値は等しい確率で選択されます。
名前ベースのステータス検出
明示的なENUM型がなくても、ジェネレーターはstatusという名前のカラムを認識し、組み込みプールから値を生成します:active、inactive、pending、suspended、archived。同様に、roleという名前のカラムはadmin、user、editor、moderatorなどの値を受け取ります。
カラム名→カテゴリマッピング
| カラム名 | 生成される値 |
|---|---|
status |
active, inactive, pending, suspended, archived |
role / user_role |
admin, user, editor, moderator, viewer |
category |
electronics, clothing, food, books, sports, home, garden |
分布
ジェネレーターは均一なランダム選択を使用します。十分に大きなデータセット(100行以上)では、各ENUM値はほぼ同じ回数出現します。これは意図的なもので、すべての値がテストされることを保証します。
ENUM機能のテスト
リアルなenumデータにより、ドロップダウンフィルター、バッジ/ラベルのレンダリング、ステータス遷移ロジック、「ステータス別注文数」のような集計クエリを検証できます。
ユースケース
ステータスベースのワークフローを持つ注文管理システムがあります。ステータスフィルターのドロップダウン、色分けされたバッジ、ステータス遷移を管理するステートマシンをテストできるように、すべてのステータス値に分散した注文のシードデータが必要です。