MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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型は取り得る値をスキーマレベルで明示的に制限できるため、データの整合性を保ちたい評価システムに特に向いています。

  1. MySQLクエリで列名にエイリアス(別名)を設定する方法

    MySQLでは、SELECT文を使って列名に「エイリアス(別名)」を設定できます。エイリアスを利用すると、出力結果の見出しをわかりやすい名前に変更でき、レポート作成やアプリケーションでのデータ表示が格段に読みやすくなります。列名にエイリアスを設定する基本構文SELECT yourColumnName1 anyAliasName1, yourColumnName2 anyAliasName2FROM yourTableName anyAliasName;このように、列名の後にスペースを空けて任意の別名を記述するだけで、その列の表示名がエイリアスに置き換わります。テーブル名にも同様にエイリアスを設

  2. MySQLで文字列と数値を組み合わせて保存するには?適切なデータ型の選び方

    MySQLで「John_123」のような文字列と数値が混在したデータを1つのカラムに保存したい場合、VARCHAR型を使用します。VARCHARは可変長の文字列型であり、英数字や記号を含む任意の文字列を格納できるため、ユーザーIDや商品コードなど、文字と数字が組み合わさったデータの保存に最適です。 VARCHAR型の基本構文 CREATE TABLE yourTableName ( yourColumnName1 VARCHAR(40) ); 括弧内の数値(40)は、そのカラムに保存できる最大文字数を表しています。保存するデータの長さに応じて、適切な値を指定してください。 テーブルを作成し