問題タブ [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 投票する
1 に答える
2974 参照

java - リレーショナル データベース配列 (H2、Java)

配列の実装方法には 2 つのオプションがあるようですが、どちらを使用すればよいかを知りたいです。

  • ARRAY データ型を使用し、(私が理解していることから) データ オブジェクトをデータベースに効果的にシリアル化します (私の場合はラップされたプリミティブ型です。これを機能させる別の方法はわかりません)。

  • 個別のテーブルを使用し、配列項目ごとに外部キーをマップします。

これ(特にH2)の経験がある場合、どれをお勧めしますか?

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

sql - PostgreSQL でスパース データを表現する

PostgreSQLでスパースデータマトリックスを表現する最良の方法は何ですか? 私が見る2つの明白な方法は次のとおりです。

  1. 考えられるすべてのフィーチャ (潜在的に数百万) に対して個別の列を持つ単一のテーブルにデータを格納しますが、未使用のフィーチャのデフォルト値は NULL です。これは概念的には非常に単純ですが、ほとんどの RDMS 実装では、通常、NULL 値がある程度のスペースを占めるため、これは通常非常に非効率的であることを知っています。ただし、PG は NULL 値のデータを取得しないため、スパース データの保存に適していると主張する記事 (残念ながらリンクが見つかりません) を読みました。

  2. 「行」テーブルと「列」テーブルを別々に作成し、中間テーブルを作成してそれらをリンクし、その行の列の値を格納します。これはより伝統的な RDMS ソリューションだと思いますが、それに伴う複雑さとオーバーヘッドが大きくなります。

また、スパース データをより適切にサポートすると主張するPostgreDynamicも見つけましたが、この機能のためだけにデータベース サーバー全体を PG フォークに切り替えたくありません。

他の解決策はありますか?どちらを使用する必要がありますか?

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

django - djangoモデル:モデルに可変数の外部キーを含める方法は?

たとえば、Model Resumeにはさまざまな数のModel Projectが含まれています。これを達成するには、モデルとそれらの間の関係を
どのようにする必要がありますか?
前もって感謝します。

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

database-design - クラステーブル継承と非正規化

クラステーブル継承の使用に傾倒して、特殊化/一般化をモデル化しようとしています(この回答を参照)。

ただし、同じテーブルに重複するスペシャライゼーションが多数(50以上)あるため、私の同僚にはメンテナンスとパフォーマンスの問題があります。彼の提案は、次の列を持つテーブルを作成することです。

  • 一般的な表への参照
  • 専門分野のタイプを維持するテーブルへの参照
  • 属性値を維持するテーブルへの参照

これにより、すべての属性が1つのテーブルに保持され、特殊化列でフィルタリングできます。このデザインが何と呼ばれているのかわかりませんが、どういうわけかEAVに関係しているのではないかと心配しています...

私の主な関心事は変更の異常ですが、それ以外にそれが悪い考えである理由はわかりません。1つのソリューションが他のソリューションよりも明らかに優れているのでしょうか、それとも1つを選んで先に進むべきでしょうか?

0 投票する
9 に答える
178546 参照

database-design - 主キーとして複数の列を使用する理由(複合主キー)

この例はw3schoolsから抜粋したものです。

私の理解では、両方の列(P_IdLastName)が一緒になってテーブルの主キーを表しますPersons。これは正しいです?

  • なぜ誰かが単一の列ではなく複数の列を主キーとして使用したいのですか?
  • 特定のテーブルで主キーとして一緒に使用できる列の数はいくつですか?
0 投票する
7 に答える
6800 参照

c# - CSV からデータベースに大量のデータをインポートする C#

大量のデータを CSV (300 万行以上) からデータベースにロードする最も効率的な方法は何ですか。

  • データをフォーマットする必要があります (たとえば、名前の列を姓と名に分割する必要があるなど)。
  • 可能な限り効率的にこれを行う必要があります。つまり、時間の制約があります

C# アプリケーションを使用して行ごとにデータを読み取り、変換し、ロードするオプションを支持しますか? これは理想的ですか、そうでない場合、私のオプションは何ですか? マルチスレッドを使用する必要がありますか?

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

mysql - 日付の保存iトレーニングスケジュールMYSQL

MYSQLで列車の時刻表データベースを作成しました。毎日数千のルートがあります。ただし、いくつかの例外を除いて、ほとんどのルートはすべての営業日で類似していますが、週末では異なります。

この時点で、私は基本的に毎日深夜にSQLテーブルを更新して、次の24時間の出発を取得します。ただし、これは非常に不便です。したがって、テーブルに日付を保存する方法が必要なので、毎日これを行う必要はありません。

各ルート番号の日付を保存する個別のテーブルを作成しようとしましたが(ルート番号は毎日リセットされます)、クエリが非常に遅くなり、使用できなくなりました。これは、出発時刻と到着時刻を日時として保存する必要があることを意味しますか?その場合、ルートを含むメインテーブルには数百万のエントリがあります。

または別の方法はありますか?

私のルーティングテーブルは次のようになります。

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

php - phpMyadminの1つのテーブルからIDを取得し、挿入時に別のテーブルフィールドに追加するにはどうすればよいですか?

テーブルに関係を与えるために、あるテーブルから別のテーブルにIDを追加しようとしています。フォームからのデータの挿入に関するいくつかのテーブルでこれを行っています。例:人が所有し、アイテムがあるため、アイテムには2つをリンクするためのアイテムIDと人IDがありますが、オプションのテーブルがある場合もあるため、これらのテーブルのIDがアイテムテーブルに追加されることもあれば、nullのままになることもあります。これ。私の考えでは、selectステートメントを実行して他のテーブルからIDを取得してから、挿入されたばかりのフィールドを更新するのは最善の方法ではないようです。誰かがこれを行う方法についてもっと良いアイデアを持っていますか?ありがとう。

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

database - より少ないディスクスペースを消費するデータベース

私は、より少ないディスクスペースを消費する大量の情報を保存するためのソリューションを探しています。

情報構造は非常に単純であり、クエリも非常に単純になります。Apache Cassandraやリレーションデータベースのようなソリューションを見てきましたが、ディスク使用量が言及されている比較は見つかりませんでした。

これに関するアイデアは素晴らしいでしょう。

0 投票する
7 に答える
833 参照

php - 「多対多」関係の同義語(リレーショナルデータベース)

「多対多」関係の同義語は何ですか?オブジェクトリレーショナルマッパーの作成は終了しましたが、そのリレーションを追加する関数の名前についてはまだ困惑しています。

addParent()とaddChild()は、多対1 / 1対多の場合は非常に論理的であり、addSuperclass()は1対1の継承の場合は非常に論理的ですが、addManyToMany()は、オブジェクト指向プログラマーには非常に直感的ではありません。addSibling()またはaddCousin()も実際には意味がありません。

助言がありますか?そして、これをプログラミング以外の質問として却下する前に、一貫した命名スキームとカプセル化がプログラミングにかなり不可欠であることを覚えておいてください:)