問題タブ [relational]
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.
javascript - javascriptでリレーショナル構造を構築するには?
DBに2つのテーブルがあります:
1-要素:
- 要素ID
- 要素名
2-方法:
- メソッド ID
- 要素ID
- メソッドデータ
したがって、要素とメソッドの間には 1 対多の関係があり、
これらのテーブル データを asp.net を使用して読み込みます。
私がやりたいことは、これらのデータを私の JavaScript に送信することです。JavaScript はこれらのデータに対していくつかの機能を実行します。
たとえば、すべての要素をループして、各要素のメソッドを取得し、各メソッド データで何らかの処理を行います。
これを jaascript のクラスとして作ろうとしたのですが、自分でいろいろ書いてしまい、
最初に要素とメソッド用の 2 つのクラス、次に 2 つの配列 1- 要素用 2- メソッド用
そして、メソッド配列内に私はこれを書きました:
これにより、コードが遅くなりました。
私の質問は、より専門的なコードと処理の高速化のために、このリレーショナル構造を JavaScript で表現する方法です。
sql - SQL 静的データ/ルックアップ リスト IDENTIFIER
静的データテーブルの設計に関して。次のようなテーブルに静的データを保持します。
- 通貨 (コード、名前)。行の例: USD、米ドル
- 国 (コード、名前)。行の例: DE、ドイツ
- XXXObjectType (コード、名前、... 追加属性)
- ...
すべての外部キー参照がそれを使用するように、別の (INTEGER) 列を主キーとして持つことは理にかなっていますか?
可能な解決策:
- 追加の INTEGER を PK および FK として使用する
- コード (通常は CHAR(N)、N は小さい) を PK および FK として使用する
- 特定のサイズよりも小さい場合にのみコードを使用してください... サイズは?
- 他の
_______
あなたの提案は何ですか?なんで?
通常はINT IDENTITY
列を使用しますが、多くの場合、UI でユーザーに表示するには短いコードで十分です。その場合、クエリの JOIN が 1 つ少なくなります。
database - オブジェクトロールモデリング(ORM)を使用したリレーショナルモデル内の動的型
オブジェクトロールモデリング(ORM)で、タイプのエンティティと関係があり、タイプエンティティが存続するように指定でき、モノエンティティが生年月日の値を持つことができるモノのエンティティが与えられた場合、どのように指定しますか?モノに関連付けられたタイプのインスタンスがライブに設定されていない場合に、モノのインスタンスが生年月日の値を持つことを除外する制約。下の図を参照してください...
制約されるモデルのORM図http://img197.imageshack.us/img197/6551/dynamictypeorm.jpg
私の質問の背後にある目的は、タイプが何であるかが不明であるが、タイプの特性がわかっている場合に、システム内のタイプのモデリングを可能にすることです。より適切なアプローチがあると思われる場合は、ORMに関する回答である必要はありません。読んでくれてありがとう、うまくいけばあなたは私を助けることができます。
database - データモデルのプロトコルに従う利点
私の質問の一部は、問題についてもう少し理解を深めることであるため、質問のタイトルはおそらく正しくありません。
データベースにインポートされるデータ (簡単な例: Access データベースへの Excel テーブル) が同じスキーマを使用して提供され、ビジネス要件にも有効であることを確認する利点を探しています。
正規化されたデータを含まない Excel テーブルと、正規化されたテーブルを含む Access データベースがあります。
Excel のテーブルは複数のサード パーティから提供されていますが、相互に、またはデータベースと同じ形式に固執するサード パーティはありません。
ソースの中には、関連するすべてのデータを提供していないものもあります。
ご提供可能例
contact_key, date, contact_title, reject_name, reject_cost, count_of_unique_contact
count_of_unique_contact は個別の contact_title から派生したものであり、インポートしないでください。contact_key が提供されない場合があります。タイトルは不明な場合があり、「n/a」、「name = ??1342」、「#N/A」などランダムに渡されます。reject_name のスペルが間違っていることがよくあります。フィールドが提供されないこともあります。たとえば、date と contact_key がありません。
上記の問題を説明するのに役立つ情報を見つけようとしています。日付が指定されていない月の不合格コストの傾向をレポートできないなど、データベースに有用なデータを保持することが困難になる誤ったデータまたはフィールドにのみ関連する問題。Excel ファイルの正規化は、私が利用できるオプションではありません。
ビジネス要件に合わせて Excel ファイルの値とフィールドを要求し、それらを送信するすべてのサード パーティに対して同じ形式にすることを望んでいますが、その要求は聞き入れられません。
偽のデータを入力し、無効な/既存の拒否/連絡先を常にチェックすることは間違っており、それを行うことは失敗するか、貧弱なシステムの継続的なメンテナンスなしではせいぜい困難になることをクライアントに説明したい.
誰でもこの問題に関する情報を持っていますか?
ありがとう
sql - 最大/最小レコードを取得する
私が取り組んでいたかなり複雑な SQL クエリにより、(ANSI) SQL の制限について考えさせられました。
任意の順序に関して最大または最小のレコードを取得する方法はありますか?
言い換えると:
次のようなクエリがあるとします。
最初の行のみを返すクエリを作成することは可能ですか (おそらく order 句を別のものに変換することによって)?
LIMIT (MySQL) / ROWNUM (Oracle) などを使用してこれを実行できることは知っていますが、それは標準 SQL ではありません。
また、サブクエリで関心のある最大/最小値を取得し (MIN()/MAX() を使用)、その結果をメインの SELECT の基準として使用することでこれを実行できることも知っています。
しかし、それは単一の列で並べ替えたい場合にのみ機能します。これを複数の列に一般化する方法はありません(上記のソリューションをネストする以外に、n列で並べ替えると2 ^ n SELECTになることを意味します)。
複数の副選択をネストするよりも、標準 SQL でより良い方法はありますか?
関連する質問は、SQL クエリを作成して最新のレコードを取得するで尋ねられます。ただし、そこにある回答は、LIMIT と友人を使用するか、上記で説明したように MAX() でサブクエリを使用することを示唆していますが、どちらも私の質問に対する解決策ではありません。
mysql - MySQL のリレーショナル データベース設計に関する簡単なヒント
ユーザー情報とアプリに関する設定を保存する、作成中の webapp があります。これは 2 つのデータベースに分割する価値がありますか? フィールド「id、useridfromFacebook、facebookRealName」(1、52052025295、Alex McP)を持つ1つのテーブル「ユーザー」と、フィールド「id、useridfromFacebook、メール、色、SomeQuoteorSomething」(4 , 52052025295, 1, 441155, 'Only The Good Die Young')
私は DB のセットアップについて教えられたり学んだりしたことはありませんが、ユーザーが認証されてアプリをインストールしたときに、設定テーブルをクエリするだけでよいため、データベースの負荷が制限されるようです if(isset( $fbauthboolean)) または何か。
考え?これを明確にできますか?
ありがとう!
最初の投稿で「データベース」と「テーブル」という言葉を混同しました。編集しました。複数のテーブルを持つ 1 つの DB しかありませんが、すべて同じユーザーに関連しています。1 つのテーブルには NAME データが含まれ、もう 1 つのテーブルには PREFERENCES タイプのデータが格納されます。
sql - これは教科書のデザインパターンですか、それとも何か新しいものを発明しましたか?
私はテーブルのセットを設計するのが新鮮で、その中で私は非常に満足しているアーキテクチャを思いついたのです!私はこれまでどこにも見たことがないので、車輪の再発明をしたばかりなのか(おそらく)、これが真の革新なのかを知りたいと思います。
問題の説明は次のとおりですEmployees
。会社とはそれぞれ異なる契約を結ぶことができる人がいます。各従業員は異なる活動を実行でき、各活動は異なる賃金率、時には1つの活動を完了するための固定額、時には時間給、時には段階的率を持っているかもしれません。また、その従業員を特に気に入っている特定の顧客がいる可能性があるため、その特定の顧客と一緒に仕事をすると、彼はより高いレートを取得します。また、レートが定義されていない場合、彼は会社のデフォルトレートを取得します。
詳細については気にしないでください。重要な点は、定義できる支払いレートがたくさんあり、それぞれがかなり複雑な方法であるということです。そして、賃金率にはすべて共通点があります。
- サービスの種類
- 賃金表タイプ(列挙型:固定金額/時給/ティアードレート)
- 固定金額(PayScaleType = FAの場合)
- 時給(PayScaleType = HRの場合)-はい、1つのフィールドにマージできますが、ここでは説明しないため、これらを別々に保持しました
- ティア(1-> nの関係、すべてのティアと、ティアのしきい値を超えたときに支払う金額)
これらの支払い率は以下に適用されます。
- デフォルトの会社レート
- 従業員率
- 従業員のオーバーライド率(顧客ごとに定義)
単純なブルートフォースアプローチに従う必要がある場合は、上記の3つのテーブルのそれぞれに、対応するLinqクラスに加えて、3つの別々の場所でレートを計算するロジックを作成しPayRate
、クローンテーブルを作成する必要があります。PayRateTier
計算ロジック。うーん。これは、データベース上でコピーアンドペーストを使用するようなものです。
代わりに、私は何をしましたか?PayRatePackage
IDフィールドのみで構成される中間テーブルを作成しました。に必須のFKを持つテーブルと、に必須のFKを持つテーブルが1つだけあり ます。次に、doおよび。と同様に、必須のFKがあります。PayRate
PayRatePackage
PayRateTier
PayRate
DefaultCompanyPayRate
PayRatePackage
EmployeeRate
EmployeeOverrideRate
とてもシンプルです-そしてそれは機能します!
(図を添付しないことをお詫びします。それは、私がすでに主要な問題を解決しているSOの質問に行くのに多大な労力を要します。多くの人が図を見たい場合は、コメントでそう言ってください。一緒に何かを投げます。)
さて、このシンプルで効果的なものは、どこかでフォーマルなデザインパターンになっているはずだと確信しています。それが何であるかを知りたいです。それとも私は何か新しいものを発明したのですか?:)