問題タブ [data-modeling]
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.
sql - 「パーティモデル」の背後にある原則と利点は何ですか?
「パーティモデル」は、リレーショナルデータベース設計の「パターン」です。その少なくとも一部には、顧客、従業員、パートナーなどの多くのエンティティ間の共通性を見つけ、それをより「抽象的な」データベーステーブルに組み込むことが含まれます。
以下についてのご意見をお聞かせください。
- パーティーモデルの背後にあるコア原則と動機付けの力は何ですか?
- データモデルに対して何をするように規定していますか?(上記の私のビットはかなり高レベルであり、いくつかの点でおそらく正しくありません。私はそれを使用したプロジェクトに取り組んできましたが、他の問題に焦点を当てた別のチームと協力していました)。
- あなたの経験から、それについてどのように感じましたか?使用しましたか?使用した場合は、もう一度使用しますか?長所と短所は何でしたか?
- パーティーモデルはORMの選択を制限しましたか?たとえば、ドメインオブジェクトと物理データモデルの間に十分な「抽象化レイヤー」がないため、特定のORMを削除する必要がありましたか?
すべての回答がこれらの質問のすべてに対応するわけではないと確信しています...しかし、それらの1つ以上に触れることは、私が直面しているいくつかの決定を下すのに役立ちます。
ありがとう。
sql-server - 電話のSQL varchar(length)で考慮する必要がある、世界で最も長い電話番号は何ですか?
電話の SQL で考慮すべき、世界で最も長い電話番号は何ですかvarchar(length)
。
考慮事項:
- + 国コード
- () は市外局番
- x + Extension 拡張用の 6 つの数字 (つまり、8 {スペース} にします)
- グループ間のスペース (つまり、アメリカの電話では +x xxx xxx xxxx = 3 つのスペース)
- ここで私はあなたの助けが必要です、私はそれが世界中にあることを望みます
私の特定のケースでは、カードなどは必要ないことを考慮してください。番号は国コードで始まり、内線番号で終わります。ファックス/電話などのコメントも、コーリング カードも必要ありません。
python - Google App Engineで必須のプロパティを持つタイプのすべてのエンティティを取得するにはどうすればよいですか?
次のような必須の文字列プロパティを持つモデルがあります。
Jean.all()を呼び出そうとすると、Pythonは必須のプロパティがないことについて文句を言います。
確かにそれらすべてを手に入れる方法がなければなりません。
スティーブが正しければ(彼の答えは理にかなっています)。それが実際に問題を引き起こしているかどうかをどのように判断できますか。データストアに正確に何があるかを知るにはどうすればよいですか?
sql - リレーショナルと LDAP の両方を理解するモデリング ツール
モデル化を検討しており、ERWIN のようなリレーショナル モデルをキャプチャできるだけでなく、オプションとして LDAP に簡単に移植できるツールが必要です。
注: Visio は既存の LDAP サーバーに接続して描画できますが、リレーショナル機能とは異なり、最初にモデル化してから展開することはできません。
active-directory - ほとんどの LDAP 管理者は手動で LDIF を作成していますか?
仕事を楽にするツールはありますか?コマンドラインのみのツールが存在する場合、GUI ツールの市場があるかどうかを推測できる人はいますか? たとえば、視覚的にモデリングすることでリレーショナル データベースを作成できます。同じ概念が LDAP にも存在する必要がありますか?
database - 識別関係と非識別関係の違いは何ですか?
違いを完全に把握できていません。両方の概念を説明し、実際の例を使用できますか?
design-patterns - ID マップのヌル キー
ID マップで使用されるドメイン オブジェクトがあります (キーはオブジェクトのId
プロパティです)。
擬似コード:
オブジェクトを観察して、データベースに保存されたことを知らせます。
新しいオブジェクトの場合、Id
フィールドは空で、データベースに保存されるまで入力されません。
そこに私の問題があります。新しいオブジェクトの場合、保存後にオブジェクトの ID が変更されているため、ルックアップ " map[domainObj.Id]
" は失敗します!
このようなアイデンティティ マップでオブジェクトを使用する最良の方法は何ですか?
制約:
- オブジェクトをマッピングのキーとして許可しない言語を使用しています [JavaScript]
- 新しいオブジェクトを保存するときは、サーバー上で
Id
フィールドを生成する必要があります
アップデート
フィードバックをお寄せいただきありがとうございます。値オブジェクトがエンティティと同じ方法でマップされることを本当に望んでいます。値オブジェクトが保存されていないからといって、アプリケーションにマップする値がないというわけではありません。実際、私はアイデンティティ マップが何であるかを誤解しています (パターン定義を読み直した後、私は実際には使用していないことがわかりました)。
私が思いついた解決策は、Igor の答えからほぼそのままです。各オブジェクトは、インスタンス化時に割り当てられたランダムな ID を取得します。それは、オブジェクトが存在するコンテキストの存続期間中、一意であり、不変であり、不変です。データベースからのエンティティと新しいインスタンス化の両方に存在します。エンティティの微調整は、オブジェクトの実際の ID と一致するように設定されていることです。これにより、デバッグが少し簡単になります。これは、マッピングでキーとして使用する値です。
security - Web アプリのソースで主キーを公開しないようにしますか?
選択ボックスなどのフォームを介して内部データベースの主キーを公開する Web アプリケーションによく出くわします。また、ロジックを切り替える int または guid マジック値に対して JavaScript が一致する場合もあります。
これは、部外者がシステムを理解しすぎてシステムを悪用する可能性を防ぐために、Web アプリケーション内の行のすべての内部識別子を漏らさないようにするためのベスト プラクティスです。もしそうなら、この問題を解決する最善の方法は何ですか?
主キーに変換できる他の値を Web アプリに公開する必要がありますか?
ありがとう
編集
完璧な世界では、アプリケーションは 100% 安全であるため、何かを隠しても問題ありません。明らかにそうではないので、注意を怠ってこの情報を公開しないようにする必要がありますか?
Stackoverflow が URL でキーを公開している可能性が高いと指摘する人もいますが、これはおそらく問題ありません。ただし、エンタープライズ アプリケーションでは考慮事項が異なりますか?
asp.net-mvc - ドメイン駆動設計のコンテキストにおける認証と認可に関する情報はどこで入手できますか?
私はDDD(ドメイン駆動設計)の方法で物事をやろうとしています。そして、男の子は私が苦労しますか。私が読んだすべての本で、認証は問題ではなく、言及されていません!
ユーザーの登録とログイン、salted パスワードの作成などを担当する独自の認証およびメンバーシップ サービスを作成しました。.NET のメンバーシップ プロバイダーは使用しませんが、フォーム認証に依存しています。
Username、E-Mail、PasswordHash、ApprovalStatus などを保持する User モデルを実装しました。
ここで、ドメイン モデルの残りの部分はユーザーに関係するべきではないと思います。Person とその関連データをモデル化するために使用されるクラス Person があります。そのため、ユーザーおよび非ユーザーからの個人データをモデル化するために使用できます。Company タイプのオブジェクトは、Users ではなく Persons と連携します。また、アクティビティはユーザーではなく人に割り当てられます。
質問は、Person モデルを User モデルに関連付けるにはどうすればよいですか? 2 つのモデルのいずれかでお互いを参照する必要はありません。PersonUser というリレーションシップ モデルを作成し、現在認証されているユーザーの人物オブジェクトを取得する追加のサービスを作成する必要がありますか?