EAVの3つの基本的な失敗、つまりデータの再構築には多くの作業が必要であることを理解しています。ただし、カスタムフィールドを追加できるデータベースが必要です。多くの人が、Virtuemartはカスタムフィールドを許可しますが、EAVデータベース構造を使用しないと言います。誰かがこれを行う方法を説明したり、リンクを提供したりできますか?
1 に答える
カスタムフィールドは、XML、YAML、またはその他のドメイン固有言語のチャンクで格納されていると思います。
基本的に、MartinFowlerのSerializedLOBパターンを使用します。
これにより、SQL式を使用してカスタム属性を照会することが困難になります。行全体をアプリケーションにフェッチして戻し、カスタム属性を解析する必要があります。しかし、これはEAVによって引き起こされる痛みよりも悪くはありません。
http://web.archive.org/web/20110709125812/http://sankuru.biz/en/blog/8-joomla-configuration-issues/35-the-cck-buzz-content-creation-kit-andを参照してください-the-eav-problem.html
VirtuemartとCCK
Virtuemart(VM)カスタムユーザーフィールドはCCKスタイルですが、EAVに依存しません。したがって、それらは非常に使いやすく、便利です。私はそれらの使用をお勧めします。
VM製品タイプもCCKスタイルですが、残念ながらEAVに依存しています。したがって、ペストのようなVM製品タイプは避けます。代わりに、製品レコードに手動で追加のフィールドを作成します。
VM属性システム(シンプル、カスタム、高度)は、実際にはパワーが不足しているため、CCKグレードとは見なされません。
VMの優れた改善点は、VM製品のタイプと属性を非EAV CCKスタイルのカスタムフィールドに言い換えることです(したがって、VMカスタムユーザーフィールドのように機能するようになります)。