sql >> データベース >  >> RDS >> Mysql

データベースの設計:どちらがより良いアプローチですか?

    これは、典型的なナローテーブル(属性ベース)とワイドテーブルの説明です。アプローチ#2の問題は、データをピボットして、ユーザーが操作できる形式にする(ワイドビュー形式に戻す)必要があることです。これは、行の数が増えるにつれて、また属性の数が増えるにつれて、非常にリソースを消費する可能性があります。また、生のテーブルビューでテーブルを見て、何が起こっているのかを確認することも困難です。

    弊社では何度もこの議論を重ねてきました。属性タイプのスキーマに非常に適したテーブルがいくつかあります。データをピボットする必要があり、データを表示して意味をなすことができないため、私たちは常にこれに反対することを決定しました(ただし、これは私たちにとって2つの問題の貸し手です-何百万ものデータをピボットしたくないだけですデータの行)。

    ところで、私は年齢を数字として保存しません。生年月日があれば保存します。また、「母舌」が何を指しているのかわかりませんが、母が話す言語であれば、これをFKとしてマスター言語テーブルに保存します。言語のつづりが間違っているために、より効率的になり、データの誤りの問題が軽減されます。



    1. OLAP接続の使用中にエラーが発生しました:MSOLAPプロバイダーがローカルマシンに登録されていません...

    2. SQLServerテーブルの既存の列にデフォルトの制約を追加する方法-SQLServer/TSQLチュートリアルパート91

    3. ある列を別の列よりも優先する

    4. AndroidのListViewでクエリを削除して更新する(sqlite)