Я пытаюсь выяснить, какую нормализацию и структуру использовать для базы данных, которую я создаю. Это будет список свойств (номера уличных адресов, названия улиц, городов, штатов, почтовые индексы, номера единиц).Является ли эта форма нормализации базы данных Mysql правильной?
Оттуда я собирался составить таблицу с различной информацией. Тогда у меня будет промежуточная таблица, чтобы объединить всю информацию и сделать запись. Насколько я могу судить, почти каждый столбец будет многозначным, кроме номера единицы. Таким образом, я вижу необходимость полной нормализации:
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, который будет принимать динамический ввод и вырывать запросы, основанные на то, что это даст ... полный точный адрес, название улицы, или номер здания название города города и т. д. Я еще не разработал алгоритм поиска mysql. Я нахожусь на начальном этапе создания моей базы данных.
Я буду использовать индексирование двигателя и b-дерева. Я буду индексировать каждый столбец, кроме комментария, поскольку я буду выполнять эти динамические поиски ввода (например, google).
Я делаю это для себя как любителя. Из-за этого я предпочитаю делать это вручную с нуля, а не использовать некоторые фреймворки или плагины.
Для чего я делаю, правильно ли эта конструкция базы данных и нормализация?
Вы должны показать инструкции 'CREATE TABLE' MySQL, и вы должны заботиться об определении хороших индексов в них. –
Вам нужно узнать, как можно создать уличный адрес ... вы будете удивлены, что возможно (например, в Букингемском дворце нет ни улицы, ни номера), не все страны имеют почтовые индексы и т. Д. –
В заявке кода, я не требую, чтобы там был номер улицы или почтовые индексы. Это должно дать наилучшие результаты для записи в ближайшей таблице с указанием какой информации. Я удалю значение null в промежуточной таблице. – dman