問題タブ [entity-attribute-value]

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

python - SQLAlchemy と EAV DB スキーマの素晴らしさをどのように組み合わせることができますか?

私は最近、Pylons を使っていくつかの作業を行っていますが、データベースの相互作用のための SQLAlchemy モデルが非常に気に入っています。私の Web サイトには、EAV スキーマの恩恵を受けると思われるセクションが 1 つあります。

これを私のテーブルの例として使用します:

次のようなクエリを手動で実行して、データを抽出および更新できます。

それは簡単で機能します...しかし、手動でクエリを作成することは、私の好みのアプローチではありません。SQLAlchemy を使用してテーブル モデルを作成し、すべての処理を実行させたいと考えています。

それぞれtypeに独自の列がある標準スキーマを使用する場合、次のことができます。

次に、次を使用してデータを引き出すことができます。

EAV スキーマでも同じことができるようにしたいと考えています。data.ageしたがって、基本的には、SQLAlchemy を拡張して、それを実際に呼び出すと、 が必要であることを伝える方法が必要ですSELECT value FROM table WHERE id=1 AND type='age'

これは実行可能ですか?または、手動で発行されたクエリでコードを乱雑にする必要がありますか?

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

mysql - エンティティ-属性-値モデルに対してクエリを実行する効率的な方法は何ですか

私は次のように設定されたデータベースを使用しています。

そして、開始したが終了していないアーティスト名「somename」のすべてのエンティティにクエリを実行したいと思います。

私はこのようなものを思いついた:

しかし、これは信じられないほど効率的であると私は思いません。これに対するより良いアプローチはありますか?

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

database-design - 在庫管理のための「EAV」または「Class/Concrete Table Inheritance」データベースの設計

建設プロジェクトの在庫管理システムを開発しています。店主は、新しい在庫を追加し、従業員に/から配布/返却する責任があります。アイテム (およびその属性) は非常に多様です。例: 製鉄所、衣料品、工場/機械、工具など

私の質問は、クラス/具象テーブルの継承または EAV ベースのスキーマのどちらを使用するかです。項目にどのような属性が含まれるかはわかりません。そのため、おそらくクラス/具体的なテーブルの継承アプローチでは、エンド ユーザーが新しいテーブルをデータベースに追加する必要があります (これは可能ですか?)。

私の提案するEAV スキーマを参照してください。これは合理的な解決策でしょうか?在庫品目を識別するには、「EV」テーブルのクエリで複数の自己結合を実行する必要があると言っているのは正しいと思いますか?

NB PHP、MySQL、および Zend Framework を使用した開発。

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

mysql - EAV ベースの在庫管理アプリケーションの MySQL 自己結合

この質問は、在庫管理アプリケーションに関する最初の質問で提案したスキーマに関連しています。

特定のアイテムの現在の在庫を提供する MySQL クエリを作成しようとしています。

クエリは機能していますが、必要な情報を取得するためのより効率的な方法があるかどうか疑問に思いました。

これは、次の行に沿って何かを返します

非常に厄介なように見えますが、私の貧弱な脳は、より良いものを思いつくことができません.

助言がありますか?

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

mysql - ページ変更履歴を保持します。SOがリビジョンに対して行うのと少し似ています

次のようなテーブル間でデータを保存するCMSシステムがあります。

私は、SOのように、リビジョンシステムを実装しようとしています。私がちょうどそれをしているのなら、Entries Table私はそのテーブルへのすべての変更のコピーを別のテーブルに保持することを計画していました。私は少なくとも4つのテーブルに対してそれをしなければならないので(TAGSテーブルはリビジョンを持っている必要はありません)、これはまったくエレガントな解決策のようには見えません。

どうしますか?

メタテーブルEAV(entity-attribute-value)でモデル化されていることに注意してください。

前もって感謝します。

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

sql - 追加のプロパティを持つレコード:スパーステーブルまたはEAV?

ほとんどの場合、数十の列が既に入力されているモデルがあります。次に、毎回異なる可能性のあるフィールドを追加する必要があります。

最善のアプローチは何ですか?私はEAVパターンが好きではありません。特に、これらの追加のプロパティがどのように大きく異なる可能性があるかを考えると、スパーステーブルを使用するというアイデアも好きではありません。

例:

次に、次のようなプロパティを追加します。

これらの追加のプロパティはレコードごとに大きく異なる可能性があり、ほとんどの場合、それらの数は限られていますが、保証はありません。

レコードを次のように考えてください。

これらの追加のプロパティが実際に列であるかのように、レコードを一覧表示、フィルタリング、および検索できるようにしたいです。たとえば、次のようなクエリを実行できる必要がありますSELECT fields FROM table WHERE ep_n > 20SELECT fields FROM table WHERE ep_1='ABC'

これに対する最善の解決策は何ですか?

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

sql - 1つのクエリで要約結果を作成する

次の形式のテーブルがあります。

各uut_snには、複数のcharacteristic_name/valueのペアがあります。MySQLを使用してテーブルを生成したい

これはたった1つのクエリで可能ですか?

ありがとう、-peter

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

sql - SQLテーブルを正規化する

このSQLテーブルをさらに正規化できますか?構造は主キーですID,Date,NAme,Type

等々

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

sql - Transact-SQL クエリ / 複数の JOIN ステートメントを組み合わせるには?

私はすでに数時間前からこの SQL パズルに頭を悩ませているので、「ねえ、スタックに聞いて、Web がソリューションから恩恵を受けられるようにしてみませんか?」と思いました。

だからここにあります。まず、これらは私の SQL テーブルです。

田畑

フォームフィールド

フォーム

記録

データプール

次の制約を考慮してください。

  • 各フォームには 0 個以上の DataPool があります。各 DataPool は 1 つの Form にのみ割り当てることができます。
  • 各フォームには 0 個以上のフィールドがあります。各フィールドは複数のフォームに割り当てられる場合があります。
  • 各レコードには 0 個以上の値があります。各値は、単一のレコードにリンクされています。
  • 各 DataPool には 0 個以上のレコードがあります。各レコードは、単一の DataPool にリンクされています。
  • 各値は 1 つのフィールドにリンクされています。
  • また、すべての Name 列には一意の値があります。

さて、問題は次のとおりです。

次の列に基づいて、値テーブルからすべての値をクエリする必要があります。

  • 値にリンクされたフィールドの名前
  • 値にリンクされたレコードにリンクされたデータプールの名前
  • その DataPool にリンクされたフォームの名前

上記の 3 つの列は、ストアド プロシージャで受け取った 3 つのパラメーターと等しくなければなりません。

これが私がこれまでに得たものです:

Values テーブルの行を PoolName 列でフィルタリングするにはどうすればよいですか? DataPools テーブルは Values テーブルに直接関連付けられていませんが、Values テーブルに直接関連付けられている Records テーブルには関連付けられています。それを行う方法についてのアイデアはありますか?

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

magento - where条件を使用してmagento select属性

やあ。次の正しい構文を知りたいです。

属性の属性を選択しmodellijnますbrand=114。上記の構文はエラーを返します。正しい構文を求めて 2 日間検索しましたが、残念ながらこれまでのところ結果はありません。

ここの誰かが喜んで私を助けてくれることを願っています!