問題タブ [multi-database]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - Symfony2: 別のデータベースのデータを操作するには?
ユーザーのすべてのマスターとトランザクションの詳細をホストする 1 つのマスター データベースがあります。
ここで、このデータベース AB と C に 3 つの Web アプリケーション (symfony2) を接続したいと考えています。それらはすべてローカル データベースを持っています。
A はユーザー用、B と C は管理者用アプリケーションです。(基本的に、これらは、マスター データベースからの情報を使用して明確に異なることを行う、私の会社内のさまざまな部門用です)。master データベースは A から供給されますが、B と C からも変更できるはずです。
BI で、A でアカウントを作成したユーザーにアクティビティを割り当て、その情報を B のローカル データベースに保存する必要があるとします。
私はこれについて1か月間熟考してきました.B(Aから来る)のユーザーエンティティを操作して、次のようなことができるようにするにはどうすればよいですか:
または次のようなもの:
2 つの異なるデータベースから情報を取得する必要がある場合、オブジェクトの関係を維持するにはどうすればよいでしょうか?
私はこの働き方にとても慣れていません。AbstractClasses や API などを使用する必要がありますか?
誰かが私が何を考慮に入れるべきかについて少なくともいくつかのヒントを持っていれば、私は最も感謝しています.
編集: これは、たとえばユーザー エンティティに対して 2 つのエンティティ クラスが必要になることを意味しますか? A に 1 つ、B に 1 つ (および C に 1 つ)。
問題は、A では、ユーザー エンティティが B よりも他のエンティティと関係を持っていることです。A と B は異なるソフトウェアであることを思い出してください。
AとBの両方で使用される再利用可能なバンドルが必要だと思いましたか? しかし、問題は、一部のエンティティが B に存在しない関係を A に持っていることです。
言い換えれば、データベースの同じデータを複数のソフトウェアのエンティティに異なる方法でマッピングするにはどうすればよいでしょうか。
php - Laravel マルチテナント アプリケーション アプローチ
Laravel 5 でマルチテナント アプリケーションを構築しようとしています。Hyn や AuraEQ などの既存のパッケージがあることは知っていますが、これらはまだ理解しにくく、独自の (簡略化された) バージョンを作成したいと考えています。このようにして、私はボンネットの下で何が起こっているかを正確に知っています。始める前にインターネットでほとんどすべてを読みましたが、このテーマに関する情報はあまりありません。
私が念頭に置いているアプローチは非常に簡単です。
- でテナントを定義し
app/config/tenant.php
、対応するデータベース接続を で定義しますapp/config/database.php
。テナントを「マスター」データベースに保存するのはやり過ぎだと思います。 - サービス プロバイダーを登録してマルチテナントを有効にする
- (アクティブな) テナントを検出する IoC コンテナーにシングルトンを登録します。
- すべての Eloquent モデルを拡張し
getConnectionName()
、アクティブなテナント データベース内でクエリをオーバーライドする
すべての Web サイト (テナント) には、ストレージ パス内に独自のフォルダーがあります。「coding.com」という名前の Web サイトがあるとします。パスは次のようになりますapp/storage/tenants/coding-com
。現在、テナントには独自のビューとルートがあります。
これまでのところ、これはコードです:
テナントの定義:
getConnectionName()
そして、メソッドをオーバーライドする「TentantModel」という名前のクラスを使用して、すべての Eloquent モデルを拡張する必要があります。
コードの大きな塊で申し訳ありませんが、これによりアイデアが理解しやすくなります。
これは私にいくつかの質問をもたらします:
- テナントごとに資産を個別に管理するにはどうすればよいですか?
- シングルトンの使用はこのアプローチに意味がありますか? ある種のグローバル変数を持つことが思いついたのはこれだけで、うまく機能しますが、シングルトンがこの種のものを対象としているかどうかは疑問です。
- このアプローチにマイナス面はありますか?これを考えたときに考慮しなかったことはありますか?
1つだけ答えていただければ幸いです。前もって感謝します!
doctrine-orm - zf2 + Doctrine メンバーごとに異なるデータベース
私のサイトの接続された各メンバーには、データベースがあります。「user_1」の教義構成は次のとおりです。
user_x の 'user_1'、'psswd_user_1'、および 'database_user_1' を 'user_x'、'psswd_user_x'、および 'database_user_x' に置き換える方法はありますか?
私はそれを行う方法がわかりません! ユーザーごとに同じコードをコピーするのは避けたい...
ご協力ありがとう御座います
php - 複数のデータベースにアクセスする SaaS の方法と、マスター データベースを使用したユーザー認証メカニズム
私は、すべてのトランザクション用のマスター データベースと、各テナント用のユーザー ベースおよび個別のデータベースを使用して、SaaS アプリケーションを構築中です。各テナントには一意のサブドメインが与えられ、それに基づいて、正しいデータベースがテナントに向けられます。Web アプリケーションは php を使用して構築され、MySQL はデータ ストレージに使用されます。
私にはいくつかの問題があります。
ユーザーがテナントのホームページ (Sub.abc.com など) にアクセスすると、ログイン機能が利用可能になります。ユーザー名パスワードとユーザーベースはマスターデータベースにあるため、ユーザーを認証するにはどうすればよいですか? マスター データベースの別のデータベース接続を介してですか、それとも Web API を介してですか? 最善の方法は何ですか?
テナントによって作成されたロールがあります。そのため、特定のテナントのスタッフが Web API を呼び出して取得され、ロールがユーザー ID と共にテナント データベースに格納されているとします。直接の外部キー マッピングがなく、ユーザーが取得されたら、テナント データベースに格納するか、単にメモリに保持する必要があるため、これは正しい方法ですか?
ビジネス オーナーが各テナント データベース固有のレポートを必要としている場合、個々のテナント データベースからすべてのデータを取得するには、どのような方法が最適でしょうか?
各テナントのデータベース使用状況、ファイル ストレージをキャプチャし、スーパー管理者に表示するにはどうすればよいですか?
yii2 - YII2 Ajax 複数 DB 接続
ユーザーテーブルを持つアカウントデータベースにアカウント、customer_1、customer_2..customer_nのような複数のデータベースがあり、そのテーブルの各ユーザーには対応するDBがあります。
user_id に基づいて、ajax を使用して DB に接続するのが好きです。これを行う可能性はあります。
アイデアと提案をお寄せいただきありがとうございます。
django - 特定のdjangoモデルに特定のDB接続を常に使用する方法は?
データを保存する必要があるdjangoアプリにプロシージャを追加しますが、数時間だけです。また、別のテーブルを自分のdbスキーマに追加する必要はありません(これはちょっと大きいです)。使用することを考えています最終的に達成したいのはTransfer
モデルを作成することであり、このモデルは常に CRUD 操作に別のデータベースを使用する必要があります。
例:
どうすればこれを達成できますか?それが機能する限り、あいまいなトリックを使用してもかまいません。
ありがとう!
c# - 複数のデータベースをサポートするアプリケーションを作成する方法
複数のデータベースをサポートするアプリケーションを作成する必要がある状況があります。複数のデータベースとは、クライアントが最初に Oracle、SQL Server、MySQL、PostgreSQL などのデータベースを使用できることを意味します。
NHibernate や MyBatis のような ORM を使用しようとしていました。しかし、それらには限界があり、使用するには専門知識が必要です。
そこで、Microsoft が提供する ADO.NET、OLEDB、ODP.NET などのデータ プロバイダーを使用することにしました。
データベースのロジックがすべてのデータベースで同じになるようにする方法はありますか? などを試しましたがIDbConeection
、IDbCommand
Oracle (Ref Cursor) の場合に問題があります。
これを達成する方法はありますか?いくつかのリンクまたはガイドをいただければ幸いです。
編集:
DBTypes には問題があります。これらは列挙型であり、異なるデータ プロバイダーで異なる方法で定義されているためです。
ruby - ActiveRecord::Base. Establish_connection でのデータベース接続が多すぎます
ActiveRecord で複数のデータベースを使用しています。establish_connection db
私はすべてのモデルを入れなければなりません。しかし、ライブラリファイルの接続を呼び出したいです。すべてのモデルに入れestablish_connection db
ていますが、データベース接続数が多すぎます。他の方法はどうすればよいですか?
私のプロジェクトは Ruby on Sinatra です。
laravel - オーケストラ/テナントマルチデータベース
多くのテナント用のアプリケーションを構築しており、各テナントには独自のデータベースがあります。データベースの名前は、テナント ID と同じです (ID は 5 つの数字のうち存在します)。認証後、ユーザーは自分のデータベースに接続され、ダッシュボードにリダイレクトされます。
Authenticate.phpに配置した次のコードを使用して、ユーザーをデータベースに接続しようとしました
if ステートメントは、ログインしているユーザーがテナント (ブール値) であるかどうかをメイン データベースでチェックします。
config/database.php には次のコードが含まれています。
AppServiceProvider:
エラーは発生しませんが、接続は変更されていません。ユーザー データベースが空であるため、 user_id=1 でログインしてもデータは表示されません。助けてくれてありがとう。
sql-server - すべてのサーバー データベースの同じテーブルからデータを取得する
DB1 、 DB2 、 Db3 ...> DB50 を備えた SQL Server 2012 があります
サーバーでデータベースを表示する必要がある場合は、使用します
Saves
このテーブルを持たない 5 つのデータベースを除いて、すべてのデータベースに同じテーブルがあります。
どのデータベースにテーブルがあるかを知る必要がありますSaves
-このために使用します
Saves
見つかった場合、すべてのデータベースからテーブルからデータを取得するにはどうすればよいですか?
私は1つずつ使用し、次のようなデータを保存するのに多くの時間がかかります
データを保存して検索に戻る
データを保存して検索に戻る
次のような SQL コマンドが必要です。