-1

データ ストレージに関する機能的な質問について教えてください。

私は、ユーザーがサーバー上に一種の Excel テーブルを保存できるプロジェクトに参加しています。テーブルのサイズは固定されていません。

テーブルを保存するための最良のソリューションは何ですか? 私のMySqlデータベースにテキストとして保存された配列として?MongoDB またはその他の NoSQL ソリューションを使用していますか?

参考までに、テーブルには検索機能は実装されません。

本当にありがとうございました!

編集:データテーブルの2つの例を追加します:

例 1: セールスマンごとの四半期ごとの売上

            Sven    Kenneth
2013.Q1     1200    4500
2013.Q2     1350    900
2013.Q3     2487    784
2013.Q4     4570    4512
2014.Q1     4785    3451

例 2: 夫婦とその子供の 1 か月あたりの体重

       Him    Her    Children
Jan    70.5   52.1   45.1
Feb    71.8   52.7   46.1
Mar    70.8   52.7   46.0
Apr    70.1   51.9   46.1

これら 2 つの例の行と列の数は同じではなく、時間とともに変化する可能性があります。次の四半期に、会社は新しいセールスマンを雇うことができます。

これらのデータを保存する方法は? ユーザーがこれらのテーブルを検索することは決してないことに注意してください。

これがより明確になることを願っています。

4

2 に答える 2

2

解決するために

これら 2 つの例の行と列の数は同じではなく、時間とともに変化する可能性があります。次の四半期に、会社は新しいセールスマンを雇うことができます。

リレーショナル テーブルを使用していた昔は、それを 2 つのテーブルに分解していました。

period | salesman | sales
2013.Q1  Sven       1200    
2013.Q2  Sven       1350    
2013.Q3  Sven       2487    
2013.Q4  Sven       4570    
2014.Q1  Sven       4785   
2013.Q1  Kenneth    4500
2013.Q2  Kenneth    900
2013.Q3  Kenneth    784
2013.Q4  Kenneth    4512
2014.Q1  Kenneth    3451

salesman   | id
Sven L       Sven
Kenneth W    Kenneth

これは第 5 正規形まで正規化されていませんが、正規化されます。

Cassandra または Mongo、Cassandra を使用できます。その場で列を作成できるスーパー列ファミリーを使用できます。MongoDb は厳密な構造ではありません。json オブジェクトのみを保存しています。次のように四半期のみを保存できます。

{
"quarter" : "2013.Q1", 
"salespeople" : [
    {"salesman": "Sven", "sales" : 1200},
    {"salesman": "Kenneth", "sales" : 4500}
 ]
}

そして来年

{
"quarter" : "2014.Q1", 
"salespeople" : [
    {"salesman": "Sven", "sales" : 1200},
    {"salesman": "Kenneth", "sales" : 4500},
    {"salesman": "Somebodyelse", "sales" : 100000}
 ]
}

あなたは両方の方法を行うことができますが、リレーショナルな方法はとても簡単です

于 2014-04-30T13:39:11.597 に答える
0

明確な答えは見つかりませんでしたが、何をするかを説明します。

結果を単純に 2 次元配列として格納します。

于 2014-04-29T19:08:23.263 に答える