Я планирую базу данных, в которой есть несколько таблиц, которые содержат множество адресной информации, города, почтового индекса, адреса электронной почты, номера телефона, факса и т. Д. (Примерно на 11 столбцов), таблицыэто таблица организаций, содержащая (до) 2 адресов (юридические контакты и контакты, которые они должны фактически использовать), плюс каждый пользователь имеет одну и ту же информацию, связанную с ним.
Нам нужно будет выполнить некоторые геолокациии по этим адресам (как и по каждому адресу, находящемуся в X километрах от другого адреса).
У меня есть несколько вариантов, каждый со своей проблемой:
- Я мог бы поставить всеинформация внутри каждой таблицы, но это будет полезно для таблиц с очень большим количеством столбцов, которые у меня будут проблемы с индексацией, и если я изменю свой формат адреса, потребуется некоторое время, чтобы это исправить.
- Я мог быпоместить всю информацию в массив и сериализовать ее, затем сохранить сериализованную информацию в одном поле, та же проблема с предыдущим методом снемного меньше столбцов и намного меньше доступности через запросы mysql
Я мог бы создать отдельную таблицу с адресной информацией и связать ее с другими таблицами либо
- , поместив столбец address_idв таблице пользователей и организаций
- размещение столбцов related_id и related_table в таблице адресов
Это должно поддерживать порядок вещей, но может привести к непредвиденным проблемам с чрезмерным объединением или чем-то еще.
Лично я считаю, что решение 3.2 является лучшим, но я не слишком уверен в этом, поэтому я спрашиваю мнения.