2012-01-07 14 views
2

私はイベント主催者がいて、イベントに関連付けられた1つまたは複数のカスタムExcelスプレッドシートを作成できます。このイベントには、メモや日付、その他の基本情報もSQLデータベースに収められています。明らかに、ユーザーのスプレッドシートごとにテーブルを作成することはできません。スプレッドシートのデータは、データベース内のデータに関連付ける必要はありません。シート自体はユーザーとイベントに関連しますが、内部のデータは厳密なデータ型なしで自己完結型です。XML列にXML/JSONを格納するのはいつも悪いですか?

  • 関係がない場合、XMLを持つ列を持つのは悪いですか?
  • ローカルストレージ以外に保存する場所はありますか?

答えて

4

これは必ずしも悪いことではありません。 XMLやJSONの塊をフィールドに格納すると、読み書きを除いて何もできません。このBLOB内の項目に対するクエリ、結合、グループ化はありません。

これで問題ない場合は、とにかくアプリですべての処理を行ってから、XMLをデータベースに保存してください。

+0

私が考えることができる唯一の動的なことは、ユーザーが「保存」ボタンを押して、新しいXMLでSQLクエリを送信できることです。 カスタムスプレッドシートを保存する方法について他に提案がある場合は、教えてください。スレッドを探すのに何時間も費やしてきましたが、特定のフィールドをクエリするXMLについて話しました。 – dewyze

+0

「すべてを読み込む」/「すべてを書き換える」以外の操作をしていない場合は、実際には提案は必要ありません。パイと同じくらい簡単です! :-) –

1

ソフトウェアをインストールできる場合は、XML/JSONを格納するためのNoSQL DBをインストールします。例えばCassandra、MongoDB、Redis

これらのアクセスを処理する方が優れています。あなたがBLOBを格納するのに必要なものは、MySQL以外のものに格納する方が良いです.MySQLはキー/バリューストアとして最適化されていないからです。

+0

私はまだかなりの量を学んでいます、私は最近、NoSQL(特にMongoDB)を研究しようとしました。 MySQLとうまく統合できますか(アクセスを決定するためのUsersテーブルやEventsテーブルと同様)?残りのデータはMySQLでうまくいきます。あるいは、すべてをNoSQLに移行するのが最善でしょうか? – dewyze

+0

NoSQLのK/Vストアの** Documents **を追跡しています。だから、それは簡単な[UserIDFromMySQL]です:[DocumentName]の種類のキーペアリングはおそらくそれを行う最も簡単な方法です。それから、ユーザに割り当てられたドキュメントのNoSQLからリストを取得するだけです(または、必要に応じてMySQLのリストでIDのリストもうまく処理できません)。 – ReadWriteCode

+0

さて、私はそれを理解していると思います。ありがとう! – dewyze

関連する問題