これは何度も質問されていると思いますが、他の人のデザインを理解するのが難しいだけです.
私はデータベース設計を学んでいて、Database Design for Mere Mortals を読んだばかりで、別の本を読んでいます - MySQL の Paul Dubois mysql 内で正規化されたデータを処理する方法を理解するのに苦労しています。
元の Access データベース (設計が悪い!) には、プロジェクトのリストがありました。これらには、Site_ID (PK)、プロジェクト コード、プロジェクト タイトル、プロジェクト マネージャー、自治区、National Grid Reference などのさまざまなフィールドが含まれていました。
Borough や National Grid 参照などのフィールドには、複数の値が含まれる場合があります。たとえば、プロジェクトは複数の区に存在し、複数の National Grid Reference を持つことができ、これらは各フィールドにコンマで区切られてリストされていました。
例: 自治区: ニューハム、ハックニー NGR: TQ 3692 8506、TQ 3768 8600、TQ 3756 8332、TQ 3880 8468
列挙するのは簡単ですが、検索するのは難しいです。そこで、これらを多値フィールドとして、プロジェクト リスト テーブルから取り出し、Borough_County テーブルと National_grid_Reference テーブルと呼ばれる独自のテーブルに配置しました。
これに関して2つ質問があります
1 つ目はキーに関するもので、2 つ目はデータをユーザーに表示する方法に関するものです。
単なる人間の本では、最初のテーブル(プロジェクト)から主キーを取得し、それを正規化されたテーブル(自治区/郡およびNGR)に入れることを示しているようです。同じキーを使用します。また、外部キーと同じキーを使用します。
Projects Table Site_ID (PK)
Project Code
プロジェクト名
など..
Borough_County テーブル
Site_ID (プロジェクトからのプライマリ キーと外部キーの両方)
Borough または County
National Grid Ref table
Site_ID (プロジェクトからのプライマリ キーと外部キーの両方)
NGR_SQ
NGR_Easting
NGR_Northing
1:n の関係があるため、これは意味がありません。独自の主キーを持つ必要がありますか?
2 番目の質問は、正規化されたテーブルをユーザーに表示する方法です。
正規化されたテーブルと元のプロジェクト テーブルを「ビュー」で再び一緒に戻したことを理解しています。
さまざまな正規化されたテーブルからデータを入力する手段としてビューを使用したいと思います。たとえば、TQ 3692 8506、TQ 3768 8600 などを NGR で記述することに慣れているため、データベースに値を正しいフィールドに分離させるにはどうすればよいでしょうか? TQ と 3692 の間にスペースを入れると、それが新しいフィールドだとわかりますか? 間にコンマを入れた場合、正規化されたテーブルの新しいレコードであることがわかりますか (わかりますか)?
それとも、Excel のやり方に慣れているので、これを完全に間違った方法で見ているのでしょうか?
助けてくれてありがとう。