私は、居住者に関する情報をフラットコンプレックスに格納するPostgreSQLテーブル(住人テーブル)を持っています。 50棟あると言う。私はここに住む各家族についての詳細な情報を持っています。いくつかの列は、Resident_type(rented、owned、..)、Members_count、Pets..etcです。リレーショナルデータベーステーブルのランダムカラムのデータ変更を追跡する
私は約50個のレコードで300個以上の列を持っています。だからこれはいくつかの州の住民を記録するスコアボードのようなものです。
何か変更があります。家族の番号:23は2016年3月10日に新しい犬を得ました.Pet_countのようなそれぞれの列を0から1に更新し、Pet_type fron NoneをDogに更新します。
このようなイベントはランダムに発生しています。年のほとんどの時間は何も変わらない。だから私がこれらのランダムな変更を追跡したければ s、何をするか?
私はレコードの数は少ないが、列の数が多すぎることを覚えておいてください。
また、私はpostgresqlでsqlalchemyを使用しています。しかし、そのデータベースの一般的な質問!何体は私に、より良いオプションは与えていない場合
マイプランB:私はつもりだ
を、二つのグループに自分のデータを分割します。時間変更可能なデータ(居住者detais、家メンバー、ペットstaus ...)、永続的なデータ(家の番号、平らな場所、部屋...のような)。私は時間の変更可能な列を弱い数値の列を持つテーブルにします。より良い解決策があると確信しています。
おかげで、あなたの詳細な回答のために:
は、ここで最初のアプローチでビューのために必要なSQLの種類の例です。したがってアプローチ1では、テーブルは更新の数だけ増加します。多くのデータが重複して不必要に重大になるようなものです。しかし、それは大丈夫だった、問題は今はるかに簡単です。だから、この "スナップショット"はpostgreSQLでサポートされています(私はそれはしていますが...)またはより良いsqlalchemy ..そしてどうやって..??あなたがこれを知っているなら、それにも答えてください。 – ISONecroMAn
このような履歴を保存するという性質は、データの重複、またははるかに多くの作業を必要とします。私は最初の方法を試してみるためにサンプルビュー定義を含めるように私の回答を編集しました。 – jmelesky
Hey .. historical_dataテーブルを使った2番目のアプローチの文脈で、簡単な質問〜私が常駐テーブルのPK(resident_id)を外部キーとして使用する他のテーブルを持っている場合、これは正しく動作します。 – ISONecroMAn