web-dev-qa-db-ja.com

同じ列フィールドが多くのテーブルで複数回発生する場合はどうすればよいですか?

データベースに20を超えるテーブルがあります。ほとんどすべてのテーブルで発生するいくつかの列があります。その場合、どうすればよいですか?これらすべての列をすべてのテーブルに配置しますか、それともこの問題を解決するためのより良い方法がありますか?

国別表の例

CountryID, CountryName, AddedBy, AddedTime, LastUpdatedBy, LastUpdateDTime, DeletedBy, DeletedTime, DeleteFlag

上記のテーブル構造でわかるように、9つの列があります。 CountryIDCountrynNameを除いて、すべてほとんどのテーブルで発生します。すべてのテーブルで繰り返し列を超えたままにしたくありません。それで、何か解決策があれば、私に知らせてください。

1
Govinda Rajbhar

Historyテーブルを作成することで、これを実現できます。そのテーブルには、それらのテーブルからのすべての変更を保存できます。 tiggersテーブルにデータを入力するには、Historyを使用する必要があります。履歴テーブルにすべての変更が保存されている場合は、それを設定するためにエンジンが必要であることを考慮に入れてください。別のアプローチは、監視するテーブルごとにHistoryテーブルを用意することです。あなたの場合Countries_History。デザインを作成するときに、そのような情報をどのくらいの量保持するかを決定する必要があります。もちろん、それらが保存する情報を気にしないのであれば、その列をすべて削除することができます。

0
Bogdan Bogdanov