web-dev-qa-db-ja.com

マルチテナントアプリケーションへの移行のパターン

店舗とその顧客を管理する複雑なWebアプリケーションがあります。

アプリケーションは基本的なMVCアーキテクチャに従っており、マルチテナントアプリケーションに移行する必要があります。-1つのストアから同じ会社に属する複数のストアに移動する必要があります。

  • 各ストアにデータベースを用意します(tenant_idを持つ1つのデータベースはオプションではありません)

  • Customer.getOrders()などの既存のインターフェースを保持したいと思います。しかし今、「顧客」はいくつかのストア/データベースで検索する必要があります。これにより、ほとんどのロジックとプレゼンテーションを維持できます

OOPの観点から、最良のパターンがどのようになっているのかは私にはわかりません。

たとえば、インターフェイスCustomerと、CustomerSingle(既存の実装)とCustomerSingleのコレクションを含むCustomerMultiの2つの実装が必要ですか?この状況の既知のソフトウェアパターンはありますか?

つまり、元のクラスはすべてマルチテナントの状況でも有効ですが、結果を「集約」する必要があります。

1
Glasnhost

提案、経験を探しているだけです...

新機能の設計。全体像がなければ、顧客インターフェースのような微視的な問題をどのように評価できますか。

必要なものが見つかったら、既存のコードベースがどのように変更されるかをより適切に評価できます。何を変更する必要があるかがわかったら、howを検討できます。

デザインがすべてです。ランダムな考えが頭に浮かぶので、コードを分解することから始めると、まあ、あなたは傷ついた世界にいます。

2
radarbob