10

私はマーケットプレイスに取り組んでおり、タイトル、URL、https の場合、連絡先メールアドレス、バージョンなどの Web サイト設定を処理する最良の方法は何だろうと考えていました。

更新が簡単で、取得する設定をどんどん追加できるように、テーブルを構造化しようとしています。

列名を設定名として、行の列値を設定値として、1 つの行に保持する 2 つの構造を開発しました。最初の行の値の列名を mysql_fetch_assoc でエコーするだけです。 ここに画像の説明を入力

また、設定ごとに新しい自動インクリメント行を用意することも考えていました。そして、データベースから取得する配列に変換して、設定名の取得に列名を割り当てます。 ここに画像の説明を入力

これを効率的に処理する方法は何ですか。ありがとうございました。

4

5 に答える 5

4

行ごとに名前と値のペアを 1 つずつ使用して、個別のオプション設定ごとに行を作成するのがおそらく最善の方法です。多くの列よりも柔軟性があります。オプション設定を追加すると、どのような操作も実行する必要がなくなりますALTER TABLE

WordPress の wp_options テーブルはこのように機能します。こちらをご覧ください。 http://codex.wordpress.org/Options_API

「複合」オプションがある場合は、php 配列をシリアル化して、テーブルの 1 行に格納できます。

于 2014-12-06T01:07:35.000 に答える
2

2つの方法は正常に機能します。管理パネルでこれらの設定を管理したい場合は、管理者INSERTからの簡単なクエリでその場で新しい設定を追加できるため、列ごとに 1 つの設定の方が優れていると言えます。ALTER TABLEどちらがクエリよりも優れています (より安全です) 。

于 2014-12-06T01:07:25.997 に答える
1

まず第一に、それはあなたのビジネス要件に完全に依存しますが、現時点では、以下の設定テーブルスキームを作成するのが最善の方法です.

CREATE TABLE `settings` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `value` text NOT NULL,
  `type` enum('general','advanced') NOT NULL DEFAULT 'general'
);

ここに画像の説明を入力

site_title = "example"
site_logo = "something.jpg"
site_url = "https://www.example.com"
address =  "#795 Folsom Ave, Suite 600 San Francisco"
email = "something@example.com"
mobile = "9898xxxxxx"

新しいキーがいつ導入されるかわからないため、これが最善のアプローチです。nameこれがキーvalueなり、になります。

長い説明の場合、値の列data typeTEXTにする必要があります。

データを区別するために、type data type isという名前の列をもう 1 つ取りました。ENUMビジネスロジックに従ってタイプをカスタマイズできます。

于 2020-07-19T04:19:50.240 に答える