9

JSON データを MySQL テーブル行に格納することは許容されますか? 配列を mysql データベースに保存する必要があります。問題は、各ユーザーに必要な列の数がわからないことです。そこで、JSON を例として名前arrayを付けた 1 つの行に格納することを考えました。これが最善の方法ですか?

編集:

また、textテーブルの列タイプとして使用しています。

4

4 に答える 4

12

はい、キー値ストアとしてmysqlを使用することは非常に良い考えです。実際、Facebookはいくつかの用途に使用します。

CREATE TABLE `json` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `data` blob NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

上記のテーブル構造はあなたを遠ざけるでしょう。シャーディングまたはクラスター化は非常に簡単です。

編集:ここでのポイントは、PHP、Rubyなどを使用してjson/dataを処理することです。あなたがしSELECT ...、あなたの編集をし、そしてINSERT ... ON DUPLICATE KEY UPDATE ...

于 2013-03-13T20:04:52.460 に答える
2

リレーショナル データベース フィールドに複数のデータを格納することは、一般的に間違っています。許容できるケースを考えることができますが、ユーザー全体を保存することはできません。

リレーショナル データベース構造を使用するだけでは不十分な場合は、MySQL の代わりに NoSQL データベースを検討することをお勧めします。

于 2013-03-13T20:06:49.607 に答える
0

問題じゃない。mySQLは、テキストフィールド内のほとんどの角かっことファンキーな文字をすでに処理できます。

于 2013-03-13T20:03:23.827 に答える
0

そうではないと思います。約4か月後、エンティティに新しい属性を追加するか、エンティティから一部の属性を削除することにしましたか?古いjsonコンテンツをどのように解析しますか?テーブルに必要な列の数がわからない場合は、別の方法で考え、user_columnテーブルを使用するような動的構造を作成する必要があります。

于 2013-03-13T20:05:30.547 に答える