- ベストアンサー
データベース設計:電力供給会社の使用量と使用料金の管理
- 初心者のためのデータベース設計:電力供給会社の使用量と使用料金を管理する方法を考えます。
- 現在は電力供給会社ごとにフィールドの内容と数が異なっており、正規化によるテーブル設計が悩ましい状況です。
- 正規化の考え方に欠点がある場合、ベストな設計方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>業務とは関係ないです。 ということですので少しアドバイスすると、このデータベースは「何のために必要なのか」、つまり、目的を最初に設定しましょう。質問のようなデータをデータベースにしてやりたいことは何でしょうか? ぱっと思いつくのは、全店の電力使用料金の月毎、4半期毎、年毎などの合計額を求める、各店ごとの年間の合計使用量を求める、使用量・料金の店舗毎月毎のランキングを求める…など考えられますよね。そうした時に、このテーブル設計でそれらのデータをSQLで出力できるか? と考えてみてください。 少なくとも、使用量と料金が電力会社毎にバラバラのテーブルに格納されていたら、何の用途にも使えないということがすぐにわかると思います。
その他の回答 (2)
- kteds
- ベストアンサー率42% (1882/4440)
データ・テーブルのフィールドは下記のように共通にして1種類でいいのでは? 供給会社によって存在しないフィールドはspace(または、"NO"などの文字)で管理してはどうでしょうか。 ----- 供給会社番号 店舗番号 年月 明細番号 お客様番号 契約種別 契約電力 契約番号 契約種別 使用量 使用料金 -----
お礼
回答ありがとうございます。1つに放り込むということですが、 供給会社が100会社存在する場合、100種類のフィールドが必要となり、 1つのテーブルに、使用量や金額は共通化できそうですが、契約番号などは、 最悪100個のフィールドが必要となり、非現実的にように見えます。 また、契約番号と無理やり共通化させると、異なる入力の定義(上記の例:6桁+2桁+6桁 と 10桁)が 同時に存在することになりそうです。
- drum_KT
- ベストアンサー率43% (1108/2554)
念のため確認ですが、この内容、学校の課題とかではなく実際に業務として設計を受注している仕事だとしたら、お客様との契約上の守秘義務違反になると思うのですが、大丈夫なんですか?
補足
業務とは関係ないです。 上記の項目はすべて、架空、適当に考えたフィールドです。 データベースを勉強している状況で、この場合を想定した場合を、 ふと考えたとき、疑問が生まれました。
お礼
回答ありがとうございます。 供給会社番号からテーブルを特定できないから、 考え方1、2ともに基の部分からまちがっているということですね。 1から練り直してみたいと思います。 参考書などでよく見かける例では、フィールドがきれいに決めれた題材があると思いますが、 現実は、フィールドはもっと煩雑で一筋縄でいけない条件だったりすることは多々あると思います。 上記に似た例や、ほかにも参考になるような題材があればご教授願いたいです。