質問: EXCELからのデータベース更新について教えてください。 現在、外部キーを使って構成したマスターデータがあります。 マスターデータは外部キーだけでは意味不明なため、 クエリを使って、外部キーとそれに紐付けされたフィールドデータの両方を 読み込んでいます。 | データ1 | データ2 | データ3 | id1 | id2 | id3 | | --- | --- | --- | --- | --- | --- | | | | | | | | EXCELシートには、データ1~3を表示させて、id1~id3は非表示にしております。 データはコンボボックスで入力しますが、その際は、データ1(id1)、データ2(id2)、データ3(id3)の組み合わせを、DICTIONARYを使って内部に保持しており、 データ1~3を選ぶことで、ID1-ID3を書き換える方法をとっています。 マスターデータの更新時には、ID1-ID3のフィールドのみを書きこんでいます。 このような処理は、外部キーを使ったデータベースアプリとして、 理にかなったものでしょうか? もっとうまいやり方があるような気がしてなりません。
回答: > > 理にかなったものでしょうか? > > > 理にかなっている場合もあり、そうでない場合もあり。要件の複雑さ次第です。 私見ではありますが、id列をわざわざ破壊するようなユーザーがいないのであれば十分だと思います。 これはExcelの問題というよりは、DBやアプリの設計、業務の理解にかかる問題です。 今の時点で使えているのであれば一旦満足(妥協)し、今後不満が出てくればその具体的な問題に応じて考える、でも良いのではないかと思います。 問題の例: * データとidの組み合わせを変える必要が出てきた。過去のデータをどうする? * 既存入力分のデータ表示はしたいが、新規入力はさせたくないidがある * 上司のチェックを逃れるため等の理由で、id列を手入力する輩がいる あまり先回りした実装をすると、後々複雑さの波に呑まれ、手詰まりになりかねないです。 勉強のために、非公開の派生版を作ってみるのは良いと思います。