問題タブ [database-relations]

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 投票する
2 に答える
696 参照

java - Hibernate オブジェクトの関係を動的に取得するには?

私は Hibernate を使用しており、実行時にオブジェクトの関係を動的に取得する方法を見つける必要があります。APIでこれを見つけることができません。

誰かが私を正しい方向に向けることができますか?

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

mysql - アセンブリとそのサブ パーツ (関係) の在庫管理

個々の部品とキット (アセンブリ) の在庫を追跡する必要がありますが、満足のいく方法が見つかりません。偽の非常に単純化されたデータベースの例:

prodPrice: コストに基づいて計算されますが、線形ではありません。この例では、コストが 500 以下で、マークアップは 200% です。500 ~ 1000 のコストの場合、マークアップは 150% です。1000+ のコストの場合、マークアップは 130% です。そのため、タイムトラベル キットは個々のパーツよりもはるかに安価です。

prodStock: これが私の問題です。私はキットまたは個々のパーツを販売できるので、キットの在庫は仮想です。

購入時の問題: Time Travel キット全体 (1 つのバーコード付き) を販売しているプロバイダーもあれば、個々のパーツ (別のバーコード付き) を販売しているプロバイダーもあります。 .

販売するときの問題: キットのみを販売する場合、在庫の計算は簡単です: 「3 つのフラックス コンデンサーと 2 つの Mr Fusions があるので、2 つのタイム トラベル キットと 1 つのフラックス コンデンサーがあります」しかし、キットまたは個々のパーツを販売できます。 . そのため、個々のパーツと可能なキットの在庫を同時に追跡する必要があります (販売価格を補償する必要があります)。

おそらくこれは本当に簡単ですが、簡単な解決策がわかりません。再開: 在庫を追跡する方法を見つける必要があり、データベース/プログラムがそれを実行する必要があります (店員に在庫の修正を依頼することはできません)。

私はphp + MySqlを使用しています。しかし、これはプログラミングの問題というよりも論理的な問題です

更新: 残念ながら、Eagle のソリューションは機能しません。

  • 関係は再帰的であり、再帰的です (あるキットは別のキットを使用します)。
  • 同じ部品を複数使用するキットがあります (フラックス コンデンサ 2 個 + Mr Fusion 1 個)。
  • キットの在庫の値を保存する必要があります。ユーザーが部品を購入したい Web ページにも同じデータベースが使用されます。そして、利用可能な在庫を表示する必要があります (そうしないと、購入しようとさえしません)。また、ユーザーが Web ページで検索するたびに株価を計算する余裕はありません。

しかし、株式を仮想としてマークするブール値のアイデアが好きでした

0 投票する
5 に答える
2253 参照

c# - C# (WPF): データベース リレーションシップ ビューアー

アプリケーション ユーザー (MS SQL Server、MS Access、Oracle、MySQL など) から選択されたデータベースのテーブル間の関係を視覚的に表示できるWPFアプリケーションをC#で作成したいと考えています。関係の編集を許可します。

たとえば、Microsoft Access 2007 では、少なくとも 2 つのテーブルがあり、[データベース ツール] タブをクリックしてから [リレーションシップ] をクリックすることで、このようなことを行うことができます。もう 1 つの例は、Microsoft SQL Server でデータベースのダイアグラムを作成する場合です。

最初のステップは、データ アクセス レイヤーを作成して、さまざまな種類のデータベース (プロバイダーの種類によって異なります) への接続を許可することです。

トリックを実行できるある種のビューアーが .NET (またはおそらく無料のサードパーティ ライブラリ) に既に存在するかどうかはわかりません。1つ知っていますか?そうでない場合、WPFで手動で行うための大きな行は何ですか?

助けと提案をありがとう!

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

mysql - 自動インクリメントされた主キーを外部キーとしても使用する方法は?

これは私がやろうとしていることです:

私は2つのテーブルを持っています...

そして、制約:

ご覧のとおり、テーブルの親には自動インクリメントされた主キー「id」があり、これは子テーブルの外部キーとしても使用されています。

次のように、親テーブルにレコードを挿入します。

そして、それはエラーで失敗します:

子行を追加または更新できません: 外部キー制約が失敗しました ( myschema. parent, CONSTRAINT parent_ibfk_1FOREIGN KEY ( id) REFERENCES child( parent_id))

子テーブルに参照されたレコードが見つからないために失敗することを理解しています。子テーブルにレコードを作成することから始めて、parent_id を 1 に設定し、次に親テーブルの自動インクリメント カウンタをリセットすると (次の挿入で id = 1 になるように)、うまくいきます! しかし、それは解決策ではありません。

子テーブルに関連する行がない場合、挿入ブロックのユーティリティは表示されません...

一対多の関係を作ろうとしているだけです...

(JOINを使用できることはわかっていますが、データの整合性のために、またPHPのメタデータとして、テーブルリレーションを使用しようとしています)

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

mysql - mysql多対多の関係

PHPおよびMySQLとの多対多の関係を処理する方法のチュートリアルを読んでいます。

この質問では、次のルールを示す「データベーススキーマ」セクションを参照します。

この新しいテーブルは、次のことを可能にするように作成する必要があります。

これまでのところ、非常にクリアです。

私が抱えている唯一の問題は、3番目のルール(「どの組み合わせでも1行しか存在できないようにする必要がある」)にあります。
これも適用したいのですが、うまくいかないようです。

mysql(5.XX)のテストインスタンスでは、同じ関係を反映する2つの行を追加できます。

たとえば、(行を追加して)この関係を作成する場合:
AからB
この関係も作成できます:
BからA

したがって、質問は実際には2つの質問です。

1)上記を許可しない3番目のルールをどのように解釈しますか?組み合わせに関係なく、一意の関係は1つだけです。

2)「A」のすべての関係を検索したい場合、SQLクエリはどのようになりますか?

注1:基本的に、私の最終的な目標は「友情」システムを作成することです。私が理解している限り、解決策は多対多のテーブルです。可能であれば、別の方法を提案します。

注2: usersテーブルは、リレーション(友情と呼びます)テーブルとは別のデータベースにあります。したがって、外部キーを使用できません。

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

database-design - データベース設計 - 関係のマッピングに疑問

データベースの設計で混乱しています。

そのサブスクリプション ベースのアプリケーション:

1 つのサブスクリプションで複数のディスプレイ デバイスを持つことができます。

サブスクライブ中、ユーザーは表示されたデバイスのいずれかを選択するよう求められます。

これを念頭に置いて、私は次のようになりました。

代替テキスト

上記のアプローチは正しいですか?

USER_SUBNS.DISP_DEV_CD (外部キー) は、DISPLAY_DEVICES.DISP_DEV_CD または SUBNS_DEVICES.DEV_CD を参照する必要がありますか?

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

sql - テーブル内の x 個の重複レコードを防ぐために T-SQL 制約を作成しますか?

私にtable Aは2つの列があります:

私にtable Bは2つの列があります:

table Aが一致するのレコード数はItemID、値を超えることはできませんMaxUsers

これが物理的に発生しないように T-SQL テーブル制約を作成することは可能ですか?

乾杯!カート

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

database - Cakephp で同じテーブルに 3 つのリレーションを与える方法

こんにちは、私はケーキ php が初めてで、問題を解決できません。問題は、次のようなテーブルがあることです。

ID varchar(16)

親 ID varchar(16)

テキストテキスト

user_id bigint(20)

is_deleted_by_user ビット (1)

is_deleted_by_us ビット (1)

who_deleted bigint(20)

who_answered bigint(20)

modified_at 日時

created_at 日時

このテーブルでは、users テーブルと user_id、who_deleted、who_answered の間の関係を示したいと考えています。つまり、user_id、who_deleted、who_answered は 1 つのユーザー ID です。ユーザーテーブルとこのテーブルの間の関係をどのように与えることができますか?

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

sql - ASP MVC 2 つのテーブル間の関係 (多対多の関係) のみを削除する

アクティブなレコードで ASP MVC を使用する。

関連するレコードと関連しないレコードを含む 2 つのテーブルがあります。関係はユーザーによって定義されます。1 つのテーブルにはプロジェクトがあり、もう 1 つのテーブルにはデバイスがあります。プロジェクトは作成および削除できますが、デバイスはできません。ユーザーがプロジェクトを削除すると、そのプロジェクトとデバイスの間のすべての関係が削除されますが、デバイスは残る必要があります。

どうすればいいですか?

私の削除アクションは現在次のようになっています:

0 投票する
5 に答える
48402 参照

nosql - NoSQL でレコード関係をどのように追跡しますか?

NoSQL KVP またはドキュメント データベースの外部キーとインデックスに相当するものを見つけようとしています。(2 つのオブジェクト間の関係をマークするキーを追加するための) ピボット テーブルがないため、通常の Web ページに役立つ方法でデータを取得する方法について、私は本当に困惑しています。

ユーザーがいて、このユーザーがサイト全体に多くのコメントを残しているとします。ユーザーのコメントを追跡するために私が考えることができる唯一の方法は、

  1. それらをユーザーオブジェクトに埋め込みます(これはまったく役に立たないようです)
  2. user_id:comments必要に応じて取得できるように、各コメントのキー [コメント:34、コメント:197 など...] のリストを含む値を作成して維持します。

ただし、2 番目の例を取り上げると、3000 万の ID を含む可能性のある「active_comments」と呼ばれるキーなどの他のものを追跡するために使用すると、すぐにレンガの壁にぶつかり、最近のいくつかを知るためだけに各ページをクエリするのに TON の費用がかかります。活発なコメント。また、多くのページが同時に更新を試みる可能性があるため、競合状態が発生しやすくなります。

NoSQL データベースで次のような関係を追跡するにはどうすればよいですか?

  • ユーザーのすべてのコメント
  • すべてのアクティブなコメント
  • [キーワード] でタグ付けされたすべての投稿
  • クラブ内のすべての学生 - または学生が所属しているすべてのクラブ

それとも、これについて間違って考えていますか?