問題タブ [entity-relationship]

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 に答える
822 参照

entity-relationship - ER図

ER ダイアグラム 1 と ER ダイアグラム 2 の違いは何ですか?

ありがとうございました

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

sql - 循環データベース関係。良い、悪い、例外?

アプリのこの部分の開発をしばらく延期しているのは、これを循環的な方法で実行したいからですが、学校で講師が教えてくれたのを覚えているので、それは悪い考えだと感じています。

私が残したこの例に関係のないものはすべて無視して、注文システムの設計があります。

  • クレジットカード
  • お客様
  • 注文

そうして欲しい、

  • 顧客はクレジットカードを持つことができます (0-n)
  • 顧客からの注文 (1-n)
  • 注文には 1 人の顧客がいます (1-1)
  • 注文には 1 枚のクレジット カードがあります (1-1)
  • クレジット カードは 1 人の顧客を持つことができます (1-1) (一意の ID であるため、cc 番号の一意性を無視できます。夫/妻は cc インスタンスなどを共有できます)

基本的に、最後の部分は問題が発生する場所です。クレジット カードが拒否され、別のカードを使用したい場合があります。これは、「現在の」カードを更新する必要がありますが、これはその注文に使用されている現在のカードを変更するだけであり、変更することはできません。顧客がディスク上に持っている可能性のある他の注文。

これにより、3 つのテーブル間に円形のデザインが効果的に作成されます。

考えられる解決策: どちらか

円形のデザインを作成し、参照を与えます:

  • cc ref 注文、
  • お客様の cc への参照
  • 顧客参照注文

また

  • お客様の cc への参照
  • 顧客参照注文
  • 3 つすべてのテーブル ID を参照する新しいテーブルを作成し、注文に固有のものを配置して、常に 1 つの cc のみがその注文に対して最新であるようにします。

基本的に、どちらも同じデザインをモデル化していますが、解釈が異なります。現時点では後者のオプションが最も気に入っています。(それが理にかなっていれば)

私の質問は、

  • それぞれの長所と短所がある場合はどうなりますか?
  • 循環関係/依存関係の落とし穴は何ですか?
  • これはルールの有効な例外ですか?
  • 後者よりも前者を選ぶべき理由はありますか?

ありがとうございます。明確化/説明が必要なことがあればお知らせください。

--更新・編集--

記載した要件に誤りがあることに気付きました。SOの物事を単純化しようとすると、基本的にボールを落としました。別のレイヤーを追加する Payments 用の別のテーブルがあります。難点は、注文には複数の支払いがあり、異なるクレジット カードを使用できる可能性があることです。(他の支払い方法についても知りたい場合)。

根本的な問題は依然として同じであり、これは実際には別の複雑さのレイヤーを追加するだけだと思う​​ので、ここでこれを述べます.

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

asp.net-mvc - asp.net mvc 1 から多数の投稿およびアップロード ファイルの保存

私はasp.net mvcが初めてです。

私はLinq to Sqlを使用しており、すべてを疎結合にしようとしています。

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

  1. ニュース
  2. ニュースファイル

私がやろうとしているのは、ニュースの保存とそのファイルのアップロードを同時に行うことです。

NewsFiles テーブルに保存する彼のファイルと組み合わせてニュースを作成するにはどうすればよいですか?

Linq to Sql モデルは問題ありません。オブジェクト NewsFile to News オブジェクトが含まれています。

News テーブルの具象リポジトリ クラス (ポルトガル語の noticia):

これは NewsFile オブジェクトへの言及ではありません。

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

sql - 外部キーなしでデータベースのエンティティ図を作成する

MSSQL 2005 データベースのエンティティ ダイアグラムを作成する必要があります。

リレーションシップは一貫して主キーを使用して定義されますが、外部キーはどこにもありません。Microsoft Visio の「リバース エンジニア」機能を試してみましたが、もちろん外部キーがないために失敗しました。

したがって、関係を描画するときに外部キーだけに依存しないダイアグラム ツールが必要です。

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

database-design - 時折使用するための優れたエンティティ関係図作成ツールの推奨事項は?

フリーウェアはプラスです。また、時折使用するのに十分な理由を一文で説明していただけますか?

編集: このクールなリンクを確認して、エンティティ関係図とツールに関する詳細情報を提供してください。

編集:選択した回答のヒントのカップルについて-円のように見えてもエンティティをクリックし、名前を入力してEnter-エンティティボックスが表示されます-関連付けをクリックし、Ctrl + Lで素敵な線が表示されます

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

database - このシナリオで外部キーを配置する場所を決定する方法は?

次のように、ログインとユーザーの 2 つのテーブルがある場合:

各ログインには「ユーザーがいます」、各ユーザーには「ログインがあります」が、どれが「所属」しますか?

それは単なる判断の呼び出しですか、それとも外部キーをどこに置くべきかを決定するための明確な公式はありますか?

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

sql - リレーションのあるテーブルに挿入するにはどうすればよいですか?

私は関係のないデータベースしかやったことがありませんが、今はもっと真面目で正しいことをする必要があります。

これが私のデータベース設計です: 代替テキスト

  1. くんで=お客様
  2. Vare = 製品
  3. Ordre = Order (読み: 注文したい)
  4. VareGruppe = ええと..タイプ? (読み: 車、椅子、クローゼットなど)
  5. VareOrdre = Product_Orders

これが私のSQL(SQLite)スキーマです:

正しく動作するはずです。

しかし、私は混乱していProduct_Ordersます。

注文を作成するにはどうすればよいですか? たとえば、SQL INSERT INTO?を使用する 2 つの製品 私は何も働かせることができません。

ここのところ:

製品とデータを手動で挿入しProduct_Orders、そのデータを追加しOrders =て完成させた場合のみ。またはその逆 (1 つの SQL で注文を作成し、Product_orders - 1エントリごとに手動で製品を SQL に挿入する)

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

c# - データベースでの Entity Framework の構成 未定義の外部キーの関係

さまざまな理由から、私が取り組んでいるデータベース (SQL Server 2005) にはリレーションシップが定義されていません。すべてのテーブルには主キーがあります。また、ほとんどのテーブルには少なくとも 1 つの外部キーがありますが、制約を構成したことはありません。

テーブル間の基になる関係を Entity Framework に通知するために実行する必要がある手順を誰か教えてもらえますか? このプロセスを説明する特定のドキュメントはありますか?

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

database - エンティティ削除戦略

行われたすべてのサービス呼び出しを記録するServiceCallデータベーステーブルがあるとします。この各レコードには、顧客レコードとの多対1の関係が含まれています。このレコードには、どの顧客がサービスコールを行ったかが格納されます。

さて、顧客があなたとの取引を停止し、データベースに顧客の記録が必要ないとします。新しいServiceCallレコードを作成するときに、ドロップダウンリストに顧客の名前を表示する必要がなくなりました。

職業はなんですか?ユーザーがデータベースから顧客のレコードを削除することを許可しますか?

その顧客のレコードに対して特別な列IsDeletedをtrueに設定し、IsDeletedがtrueに設定されているすべてのレコードがすべてのドロップダウンリストに読み込まれないことを確認しますか?これにより、古いレコードが内部結合で破損するのを防ぎますが、ユーザーが古い顧客と同じ名前の新しいレコードを追加することもできなくなりますね。

削除を一切禁止しますか?それを「無効にする」ことを許可しますか?

他に使用した戦略はありますか?誰もが自分の道を進んでいると思います。あなたの意見を見るだけです。

もちろん、上記は非常に単純化されており、通常、ServiceCallレコードは他の多くのエンティティテーブルにリンクします。削除する必要がある場合、これらすべてが同じ問題に直面します。