データ型をデータベースに格納する際のベストプラクティスとは何でしょうか?文字列とデータ格納用の整数
たとえば、チケットが次のステータス(open
,closed
、review
)を持つことができるサポートチケット機能があります。
文字列として保存しますか?
+----+----------------+--------+
| id | ticket | status |
+----+----------------+--------+
| 1 | example ticket | open |
| 2 | example ticket | closed |
+----+----------------+--------+
ストア整数値、そう:1
=>open
、2
=>closed
と3
=>review
又は文字列として。
+----+--------+
| id | status |
+----+--------+
| 1 | 1 |
| 2 | 2 |
+----+--------+
あなたはその状態の名前を解決するために、あなたは余分なテーブルを作成し、整数として保存したい場合(support_ticket_states
テーブルを言うことができますか)?
+----+----------------+--------+
| id | ticket | status |
+----+----------------+--------+
| 1 | example ticket | 1 |
| 2 | example ticket | 2 |
+----+----------------+--------+
それとも、例えば、クライアント側でそれを行うだろう:
最良の選択肢であると考えられる何if ($ticket->status == 1) {
echo 'Open';
}
?
3つの異なる状態しかない場合は、列挙型が適切です。 Enumをデータベースに格納できますか? – Carcigenicate
列挙型として格納できます。確かに最良の選択肢のように思えますが、答えとして投稿することができますので、解決したことをマークできますか?あなたの素早い返信をありがとう –
通常、可能な状態の数が限られている場合は、Enumに到達する必要があります。そうすれば、無効な値が渡された場合、コンパイル時にキャッチされる可能性があります。マクロを作成しない限り、生のints/stringsはその能力を与えません。私は答えを書くだろうが、私は非常に長い時間PHPやmysqlを使用していない。 – Carcigenicate