PHP/MySQL 用のエンティティ属性値フレームワークはありますか? 私は自分で書き始めていますが、すでに終わっているように感じます。助言がありますか?
3 に答える
Magentoは EAV スタイルのアーキテクチャを利用していると思います。一見の価値があるかもしれません。Magento は、Zend Framework に基づく e コマース プラットフォームです。
私は何も知りません。
そうは言っても、eZ Publish ECMS (FOSS) は、EAV スタイルの高度に正規化されたデータ モデルを使用します。構造化されたコンテンツ ( 「コンテンツ クラス」 )のタイプの定義と、コンテンツの実際のインスタンス (記事、ユーザー アカウント、コメント、製品など、あらゆるもの) の両方が定義され、単一のデータベース テーブルに格納されます。
このように、データ型の任意の組み合わせを Web インターフェイスを介して動的に組み合わせて、新しいコンテンツ タイプを作成できます (「シンプルな記事」は、見出しの「テキスト行」、公開日の「日時」、本文の「XML フィールド」で構成される場合があります)。 )。EAV では、「simplearticle」はエンティティ、「headline」は属性名、「Textline」はその値であり、「Textline」データ型を構成する長さと検証規則は EAV コンテキストのメタデータです。
どの EAV アーキテクチャでも予想されるように、この柔軟性はパフォーマンスの低下という代償を伴います。これは、ピボットされた結果セットの列ごとに 1 つずつ、複数の自己結合がルックアップで必要になるためです。
残念ながら、このスタックは eZ の関連するeZ コンポーネントライブラリ (データベースとデータ アクセス オブジェクト/ORM コンポーネントを含みますが、標準的なリレーショナルの種類のもの) には含まれていません。必要なクラス ライブラリは自分で作成します。
現在、PHP / MySQL には EAV フレームワークはないようです。ただし、次の 2 つのリンクが役立つ可能性があります。