4

Mysql で単純な小さなデータベースのデータベース レイアウトに取り組んでいます。このシステムをモジュール化して、これから行うさまざまな実装の柔軟性を高めたいと考えています。ここでのアイデアは、データベース内の 1 つのモジュール (それらの間に制約がある単純なテーブルのグループ) が、そのデータをビューを介して次のモジュールに渡すことでした。このようにして、あるモジュールの変更が他のモジュールに影響を与えることはありません。これは、テーブルの基本構造が異なる場合でも、正しいデータが常にそこに存在することをビューで確認できるためです。

データベースを扱うアプリの構造も同様にモジュール化されます。

これは時々行われるものですか?技術的な面では、ビューが主キーを持つことができないことを理解しているので、そのようなビューにどのように対処しますか? 他にどのような問題を考慮する必要がありますか?

4

2 に答える 2

2

これは時々行われるものですか?

はい、ビューは多くの場合、流動的な状態のデータ モデルから物事を分離するために使用されます。

技術的な面では、ビューが主キーを持つことができないことを理解しているので、そのようなビューにどのように対処しますか?

MySQL は具体化されたビューをサポートしていません。マテリアライズされていないビューは、準備された SQL ステートメントにすぎません。これらはデータ モデルには存在せず、パフォーマンスは最終的に、基になるテーブルに存在するものとクエリの最適化に基づいています。

とは言っても、ビューのレイヤー化 (別のビューから選択するビューを作成すること) はお勧めしません。これは脆弱であり、クエリの最適化よりもシンプルさを求めているためにパフォーマンスが低下する大きなリスクがあります。

于 2010-06-10T19:49:42.690 に答える
0

もちろん注意が必要ですが、これは有効なアプローチです。

  • クエリ プランを分析して、クエリのパフォーマンスを十分にテストしてください。ビューは基になるテーブルのインデックスを使用しますが、不適切な実行計画の可能性が高くなります。

  • 必要なすべての情報をカバーするのに十分なビューが存在することを確認してください。

于 2010-06-10T19:06:10.830 に答える