5つ星評価の列にはどのデータ型を使うべき?MySQLでの実装方法を解説
5つ星評価(★1〜★5)の列を実装するには、MySQLのENUM型を使用するのが最適です。ENUM型を使えば、あらかじめ定義した値(この場合は「1」から「5」)だけを格納でき、範囲外の無効なデータが登録されるのを自動的に防ぐことができます。
1. テーブルの作成
まず、ENUM型のカラムを含むテーブルを作成しましょう。
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserRating ENUM('1','2','3','4','5')
);
Query OK, 0 rows affected (0.54 sec)
UserRatingカラムはENUM('1','2','3','4','5')と定義されているため、1〜5以外の値を挿入しようとするとエラーになります。
2. レコードの挿入
続いて、INSERT文を使って評価データを登録します。
mysql> insert into DemoTable(UserRating) values('5');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(UserRating) values('3');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(UserRating) values('1');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(UserRating) values('3');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable(UserRating) values('4');
Query OK, 1 row affected (0.18 sec)
3. データの確認
SELECT文でテーブルの内容を表示して確認してみましょう。
mysql> select *from DemoTable;
上記のコマンドを実行すると、次のような結果が出力されます。
+----+------------+ | Id | UserRating | +----+------------+ | 1 | 5 | | 2 | 3 | | 3 | 1 | | 4 | 3 | | 5 | 4 | +----+------------+ 5 rows in set (0.00 sec)
まとめ
このように、ENUM型を利用すれば、1〜5の評価値のみを受け付ける5つ星評価用カラムをシンプルに実装できます。TINYINT型などで代用する方法もありますが、ENUM型は取り得る値をスキーマレベルで明示的に制限できるため、データの整合性を保ちたい評価システムに特に向いています。
-
MySQLクエリで列名にエイリアス(別名)を設定する方法
MySQLでは、SELECT文を使って列名に「エイリアス(別名)」を設定できます。エイリアスを利用すると、出力結果の見出しをわかりやすい名前に変更でき、レポート作成やアプリケーションでのデータ表示が格段に読みやすくなります。列名にエイリアスを設定する基本構文SELECT yourColumnName1 anyAliasName1, yourColumnName2 anyAliasName2FROM yourTableName anyAliasName;このように、列名の後にスペースを空けて任意の別名を記述するだけで、その列の表示名がエイリアスに置き換わります。テーブル名にも同様にエイリアスを設
-
MySQLで文字列と数値を組み合わせて保存するには?適切なデータ型の選び方
MySQLで「John_123」のような文字列と数値が混在したデータを1つのカラムに保存したい場合、VARCHAR型を使用します。VARCHARは可変長の文字列型であり、英数字や記号を含む任意の文字列を格納できるため、ユーザーIDや商品コードなど、文字と数字が組み合わさったデータの保存に最適です。 VARCHAR型の基本構文 CREATE TABLE yourTableName ( yourColumnName1 VARCHAR(40) ); 括弧内の数値(40)は、そのカラムに保存できる最大文字数を表しています。保存するデータの長さに応じて、適切な値を指定してください。 テーブルを作成し