サービステーブルがあります。各サービスは、1 つのメイン カテゴリと 1 つのサブ カテゴリによって定義されます。
例えば、
Service = Joe's Web Company、MainCategory = 情報技術、SubCategory = Web 開発
提供される各サービスには、共通のプロパティ セット (コスト、場所など) があります。
各サービスには、SubCategory に固有の一連の属性もあります。
したがって、上記の例では、Joe's Web Company は次の属性を持つ可能性があります: PHP(BOOL):1、MySql(BOOL):0、Javasctipt(BOOL):1 など
または、アクターの場合、次の属性を持つ場合があります: EyeColour(ENUM): Blue、Height(float): 5.11
したがって、スーパータイプ/サブタイプの関係が最もうまく機能すると考えていますが、500 を超えるテーブルについて話している可能性があります。
また、メイン カテゴリ全体でサービスを検索できるようにする必要もあります。このために、マスター サービス テーブルにキーワード列を作成することを考えていたので、各サブタイプのテーブルを検索する必要はありません (一部のカテゴリには 50 のサブタイプ/テーブルがある場合があります)。私は毎晩スクリプトを実行して、各サービスのサブタイプの属性を説明するテキストをこの列に入力します (たとえば、Joe のキーワード列には「PHP Javascript」が含まれます)。
このアプローチは問題ないように見えますか?それとも、テーブルの数を考慮すると、EAV ソリューションの方が適しているでしょうか?