問題タブ [relational-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
339 参照

mysql - データベース構造 - 参加するかしないか

新しいアプリ用に mySQL Workbench を使用してデータベース構造を作成しています。データのリストを作成するために必要な結合の数は、多対多の関係が増加するにつれて大幅に増加しています。

アプリケーションは非常に読み取り負荷が高く、テーブルごとに数十万行あります。

質問:

  • 必要に応じてテーブルをマージして、結合を減らすのは本当に悪いことですか?

  • 水平パーティショニングを検討する必要がありますか? (テーブルのマージと併用)

  • 多対多の関係を処理するために、ピボット テーブルよりも優れた方法はありますか?

  • すべてのデータをシリアル化されたテキスト列に格納する代わりに、データベースではなくアプリケーションで並べ替えを行うことについて説明しましたが、データベースが大量にキャッシュされるにもかかわらず、これは非常に悪い考えのように思えます。どう思いますか?

0 投票する
1 に答える
2297 参照

database - 関数の依存関係を第 3 正規形に変換する

リレーション スキーマを 3NF にある一連のスキーマに分解する際に、この問題が発生します。

私はこの関係スキーマを持っています: R= (A, B, C, D, E, F)
次のセット F の機能依存関係:

A → ABCDEF
B → C
D → E

誰でも私を助けることができますか?

0 投票する
2 に答える
184 参照

database - 私のニーズに最適なデータベースは何ですか?

現在MSSQLServer 2008を使用していますが、この特定のタスクに最適なシステムかどうかはわかりません。

私はそのような単一のテーブルを持っています:

一般的なクエリは

このテーブルには約10億行あり、1日あたり500万行が挿入されています。

SQL Serverに関する私の主な問題は、データファイルをシャーディングまたは分散するのが簡単ではないことです。また、エクスポートは1秒あたり1000行(約1MB /秒)で最大になるようですが、これは非常に遅いようです。

私が抱えているもう1つの問題は、SQL Serverで、新しいLookupColを追加したい場合、ログファイルが非常に大きくなり、タップ時にめったに使用されない大量の空き領域が必要になることです。

この問題に対する明らかなより良い解決策はありますか?

0 投票する
1 に答える
118 参照

relational-database - 複合キーを壊すことは可能ですか?

テーブルの複合キーを壊して、そのうちの 1 つを他のテーブルの主キーとして使用することはできますか? はいの場合、どうすればよいか教えてください。

0 投票する
1 に答える
313 参照

php - 人々の間のつながりをMySqlデータベースに保存する

人々の間のリンクを保存するデータベースを作成したいと思います。

次に、どの人物がどの人物とつながっているかを詳述する記録を取り戻す必要があります。

出力する必要があります: person1 は person2 に接続され、person3 などに接続されます。

このタスクを開始するにはどうすればよいですか?

0 投票する
1 に答える
79 参照

database - ENUMSがPostgreSQLに参加するのはいつですか

enum型のPostgreSQLの列からselectを実行した場合、enumの文字列値は、最終結果セットが作成される前または後に結合されますか?私の動機の説明はhttp://archives.postgresql.org/pgsql-performance/2008-07/msg00226.phpで見つけることができます

0 投票する
10 に答える
10784 参照

java - MongoDB はリレーショナル db + lucene の有効な代替手段ですか?

新しいプロジェクトでは、サーチャーの実装に lucene を多用する必要があります。このサーチャーは、プロジェクトの非常に重要な (そして大きな) 要素になります。Relational Database + Lucene をMongoDbに置き換えるのは有効または便利ですか?

編集:わかりました、明確にします:私はリスクについて尋ねているのではなく、このプロジェクトでその代償を払うことができます。私のポイントは次のとおりです。MongoDB はこの種のことを指向していますか? Lucene と同じパフォーマンスの完全な検索エンジンを作成できますか? 友人は代替として MongoDB を指摘してくれましたが、Lucene のパフォーマンスがドキュメントの代替に付属しているかどうかはわかりません (そして、MongoDB でも見られます)、逆インデックスと最適化が完全に行われています。ドキュメントの向きに依存しません。

0 投票する
3 に答える
183 参照

ruby-on-rails - これはhas_many:throughアソシエーションでさえあるべきですか?

投稿はユーザーに属し、ユーザーは多くの投稿を持っています。
投稿もトピックに属し、トピックには多くの投稿があります。

これは非常にシンプルで設定が非常に簡単ですが、トピックを表示するときは、そのトピックのすべての投稿だけでなく、その投稿を作成したユーザーのuser_nameとuser_photoも必要です。ただし、これらの属性はユーザーモデルに保存され、トピックに関連付けられていません。では、どうすればそれを設定できますか?

Postモデルにはユーザー用とトピック用の2つの外部キーがあるので、おそらくすでに呼び出すことができますか?

または、おそらくこれは、関連付けによるある種の「一方向」のhas_manyです。Postが結合モデルであり、トピックがhas_many:users、:through =>:postsであるように。しかし、これの逆は真実ではありません。ユーザーのようにhas_many:topicsはありません。

それで、これはhas_many:thoughアソシエーションである必要さえありますか?コントローラーが特定のトピックに対して投稿とその投稿のユーザーの両方を呼び出すように見えるかについて、私は少し混乱していると思います。

編集:真剣に、すべてのことを検討してくれてありがとう。私はコントローラーに彼のコードを使用したので、talの答えを選びました。ただし、代わりにj。またはtimを簡単に選択することもできます。両方ともありがとう。これは非常に簡単に実装できました。今日はレールとの恋愛の始まりかもしれないと思います。

0 投票する
4 に答える
2249 参照

sql - SQL: 2 つのテーブルの主キー値をマスター テーブルに挿入する方法

私が本当に理解できないSQL文について助けていただければ幸いです。

私がやりたいことはかなり単純です。2 つの異なるテーブルから値を取得し、新しい行が 2 つのテーブルのいずれかに挿入されたときにそれらをマスター テーブルにコピーする必要があります。

この問題は、おそらく次のように説明するのが最も適切です。

productcategories、regioncategories、mastertable の 3 つのテーブルがあります。

productcategoriesまたはregioncategoriesで新しい行が作成されたときに、このように値が挿入されるようにします。

新しい行が作成されます。

そして、SQL ステートメントが新しい値をマスターテーブルにコピーします。

regioncategories に行が作成された場合も同様です。

新しい行。

マスターテーブルにコピーされます。

それが理にかなっていることを願っています。

ありがとう、

ステファン

0 投票する
3 に答える
1105 参照

codeigniter - 多対多の関係をどのように管理すればよいですか?

ファイルとユーザーの 2 つのテーブルを含むデータベースがあります。この関係は多対多であるため、上記の両方のテーブルへの外部キーを保持する users_files_ref というテーブルもあります。

各テーブルのスキーマは次のとおりです。

ファイル -> file_id、file_name

ユーザー -> user_id、user_name

users_files_ref -> user_file_ref_id、user_id、file_id

私は Codeigniter を使用してファイル ホスト アプリケーションを構築しており、ユーザーがファイルをアップロードできるようにする機能を追加している最中です。これが私の問題に直面しているところです。

ファイル テーブルにファイルを追加したら、users_files_ref テーブルを更新するためにその新しいファイルの ID が必要になります。現在、ファイル テーブルにレコードを追加しています。次に、最後に追加されたファイルを取得するクエリを実行して ID を取得し、その ID を使用して新しい users_files_ref レコードを挿入することを想像しました。

これが小規模で機能することはわかっていますが、特にトラフィックの多いシナリオでは、これらのレコードを管理するためのより良い方法があると思います.

私はリレーショナル データベースは初めてですが、しばらくの間 PHP を使用しています。

ファイル、ユーザー、users_files_ref テーブルの主キーと外部キーを正しく設定しましたが、このシナリオでファイル レコードの追加をどのように管理すればよいのでしょうか?

提供されたヘルプに感謝します。

-ウェス