2016-11-07 4 views
0

私はLaravelでHuman Ressource WebAppを開発しました。マルチアプリケーションのアーキテクチャとデータベース

このアプリでは、私は自分のユーザーデータベースを持っています。

今、2つの古いアプリがあります。私はLaravelに移行し直すつもりです。

最初は、従業員の支払いを管理することです。

2番目のアプリは、営業担当者をフィールドで監視するためのアプリです。

基本的には、基本的には書き直します。

私の質問はアーキテクチャです。 Lumen/LaravelでAPIを分けている2つのアプリをそれぞれのアプリごとに個別に開発し、クライアントをAngular2で作成します。

OAuth2.0を使用して、アプリケーション間の承認とスコープを設定します。

今、私の決定はデータベース部分にあります。

データベースを分離しておくか、同じスキーマにデータベースを含めるか、データベースをどのように扱うべきですか。

今日、私は1アプリにつき1つのDBを持っていますが、私はユーザに冗長性があります。各アプリは同じユーザーで動作しますので、この情報を複製してください。

今のところ、ユーザーがApp1で作成されると、APIを呼び出してapp2とapp3で作成します。これはあまりいいことではありません、IMHO。をすべきで、

  • は、私はすべてのユーザーのための中央データベース内のユーザーの情報を抽出する必要があります

    だから、私は、単一のユーザー・データベースを持ちたいと思うが、私は本当にそれの経験を持っていません

  • 私のDB間にユーザーの情報を複製しておく必要がありますか?
  • 私は3貴様DBに保管した場合、どのように私は作るべきは、私は1つの答えはありません知っている

など、トランザクションに参加する外部キー、それは私が欲しいものを依存しますが、これもあります私の問題は、私は私の決定をするためにどの質問をしなければならないのか分からないのですか?

私はあまりトラフィックがなく、最大1000人のユーザーであり、それらはすべて自分の企業に属していますが、それはあまり増加しません。だから、実際には、今、私の優先事項ではない、スケーラブルなアプリケーションを作ってください。

ご了承ください。

答えて

0

あなたのアプリの間でデータベースを共有しているので、同じLaravel/Lumenアプリでデータベースを共有するのが一般的です。

これを実現する方法は、ルートグループ内のアプリケーションを分離し、各アプリケーションのコントローラ階層を名前を付け、このモデルで使用する接続を各モデル内で宣言することです。

このようにして、すべてのアプリケーションで同じDB接続を使用し、同じデータを複製せずに共有できます。

関連する問題