会社を追加するアプリケーションがあるとします。私はこのようなテーブルを持っています:
create table companies(
id primary key,
name varchar
)
会社ごとに、ビジネスタイプの情報をたくさん保存する必要があります。それらは非常に多いため、衝突、非常に遅いパフォーマンス、複雑なクエリを回避するために、会社ごとに1つのデータベースを作成することにしました。データベース名は、私のcompanysテーブルの会社名になります。
私の問題は、会社名とデータベースに1対1の関係を与えて、それらが互いにシンクするようにしたいということです。それは可能ですか?そうでない場合は、会社ごとにデータベースを作成する以外に、より良いアプローチはありますか?
これは私のコメントの詳細です。
データベースは、数百万、さらには数十億の行を持つテーブルを処理するように設計されています。あなたのデータはそれほど大きくないと思います。
単一のエンティティのすべてのデータを単一のテーブルに格納するのはなぜですか?ここにいくつかの理由があります:
where
単一企業のデータを選択するための句は、特に「複雑」ではありません。(注:これは、データベース用語である「エンティティ」を指します。企業のデータは、引き続き複数のテーブルに分散できます。)
パフォーマンスを向上させるために、データモデルを調整し、インデックスを追加し、テーブルをパーティション分割できます。これは、データベースで実行される膨大な数のアプリケーションには十分です。
会社/クライアントごとに個別のデータベースが必要な状況がいくつかあります。これが私が遭遇したいくつかです:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加