各モジュールが他のモジュールから分離されたモジュラー システムを作成しています。モジュール構成データをデータベースに保存したいのですが、これに最適な構造がわかりません。
私はいくつかの変種を持っています:
1位:
key_____|______value (primary key is `key`)
option1 | 1
option2 | abcd
option3 | bla-bla-bla
設定は簡単に取得できますが、一部の設定を更新したい場合は、CASE を使用して難しい (?) SQL クエリを作成する必要があります。
UPDATE settings SET value = CASE
WHEN key = option1 THEN 1;
WHEN key = option2 THEN abcd;
…
END
WHERE key IN (option1, option2, …)
1 つのクエリで多くの行を更新するためのより良いバリアントがある場合 (MySQLi と InnoDB のみを使用します)、これは素晴らしいことです。
2番目:
module_____|_____settings
news | a:3:{s:7:"option1";i:1;s:7:"option2";s:4:"abcd";s:7:"option3";s:11:"bla-bla-bla";}
このようにして、配列を設定でシリアル化し、データベースに配置します。シリアル化されていないデータを .php ファイルにキャッシュしたい。しかし、設定配列が大きい場合、シリアル化された文字列は非常に大きくなります。
3番目:
option1 | option2 | option3
1 | abcd |bla-bla-bla
1 つのオプション キーに対して 1 つの列を作成しますが、1 つの行を格納するために 1 つのテーブルを作成するのは不必要だと思います。
どのバリアントが最適ですか? 構成を保存する独自の方法を提案できますか? ありがとうございました!