私は会社のクライアントのためにいくつかのサイトを構築しています。サイトはほとんど同じですが、いくつかのカスタマイズが可能です。
そのため、マルチテナントではなく重複サイトを作成することにし、サイトの必要に応じてインストールできるようにパッケージシステムを使用することにしました。
今私の質問は、パッケージ2(記事)のアイテムも表示する必要があるパッケージ1(イベント)がある場合、どうすればよいですか?
私の最初の考えは、news/all.jsonのある種のルートを作成できるということでしたが、パッケージ1はそれが存在することを認識し、依存関係がありますか? (ニュースでも同じことをする必要があります。つまり、イベントを取得します)
もう1つの問題は、イベントとニュースの両方に同じカテゴリがあるため、パッケージでは、news_categoriesテーブルとevent_categoriesテーブルを別々に作成する必要がありますか?
私にとって、パッケージはDB移行、テスト、ルート(ユーザーと管理者)で構成されます(laravelパッケージ)
最後に、私がマルチテナントに行かなかった理由は、私のマネージャーがカスタマイズがあるようだったので、DB /コードが少し醜くなりますが、今はよくわかりません:(
編集:私がそこにあるパッケージについて話すとき、私は実際にはモジュールを意味しますが、php(npmに似たコンポーザー)ではそれらはパッケージと呼ばれます。
パッケージが独立していて、長期的にはあるサイトから別のサイトに変更されないことを確認する必要があります。展開とバージョンの追跡に問題が発生します。パッケージがジェネリックであり、任意のサイトにロードできる場合、モジュール(パッケージ)をURLで呼び出すと問題はありませんが、通信標準のURLまたはインターフェイスを維持し、変更しない(または変更を最小限に抑える)必要があります)。他の解決策は、micreservicesアプローチを採用することです。