私が作成しているデータベースにどのような正規化と構造を使用するかを理解しようとしています。プロパティのリストになります(建物番号、住所、通りの名前、都市、州、郵便番号、ユニット番号)。
そこから、いろいろな情報を載せた表を作るつもりでした。次に、すべての情報を結合して記録を作成するための中間テーブルを作成します。私が知る限り、ほぼすべての列は、ユニット番号を除いて多値になります。したがって、完全な正規化の必要性がわかります。
Table building_number
---------------------
building_number_id int primary key auto index not null
buildind_namber tinyint
Table city
--------------------
city_id building_number_id int primary key auto index not null
city_name varchar(30)
Table state
--------------------
state_id building_number_id int primary key auto index not null
state_name varchar(30)
Table zip
---------------------
zip_id building_number_id int primary key auto index not null
zip_name varchar(30)
Table building_name
---------------------
building_name_id int primary key auto index not null
building_name varchar(50)
Table owner
---------------------
owner_id int primary key auto index not null
owner_name varchar(30)
Table info
----------------------
info_id int primary key auto index not null
rent tinyint
condition varchar(10)
comment varchar(1000)
Intermediate table
--------------------------
building_number_id int
street_id int
city_id int
state_id int
building_name_id
owner_id
info_id
(all these keys are foreign keys referencing their respected tables/primary keys)
動的入力を受け取り、与えられたものに基づいてクエリを取得する html 検索テキスト ボックスを作成します...完全な正確な住所、通りの名前、建物番号、通りの名前、都市など。アルゴリズムはまだです。私は自分のデータベースを作成する最初の段階にいます。
innodb エンジンと b-tree インデックスを使用します。これらの動的入力検索(Googleなど)を行うため、コメントを除くすべての列にインデックスを付けます。
私は趣味として自分のためにこれをやっています。このため、フレームワークやプラグインを使用するよりも、ゼロから手動で行うことを好みます。
私がやっていることについて、このデータベースの設計と正規化は正しいですか?