Объясни мне смысл плодить доп. таблицу адресов? Основной вопрос - зачем? Если есть база, то экспорт будет из нее, а руками набивать - глупо, проще чтобы каждый юзверь сделал это сам.
Во-первых достоверность информации. Юзер может вбить в адрес все что угодно, а админу потом проверять это придется. А так у меня реализована функция Импорта и CSV файла. Пожалуйста, делаете файл, а компонент его сам по таблицам рассует как надо. И бухгалтер делает CSV файл один раз в принципе.
Во-вторых сама возможность отдельного редактирования записей (например номера дома или ФИО собственника) - это удобно. Сменился собственник у квартиры - залезли в Админ-панель - поменяли в одном месте руками.
А по отдельной таблице адресов, тут тоже просто. Тут достаточно удобно получается.
Смотрите (ну в общем обычная нормализация).
У Вас за каждой квартирой по бухгалтерии закреплен один лицевой счет. И в этом случае действительно не нужно разделять таблицы адресов и лицевых счетов.
Но что если у Вас на один адрес (одну квартиру) приходиться два-три или 10-ть лицевых счетов. А такое встречается сплошь и рядом, для коммунальных квартир, когда у одной квартиры несколько собственников и они хотят платить раздельно и т.д. Тогда для одной единой таблицы получаем большую избыточность. Например для 10 разных лицевых счетов в таблице будет храниться 10 одинаковых адресов, размер базы сильно увеличивается - результат увеличения времени отклика.
P.S.: На самом деле есть некая золотая середина когда нормализация начинает приводить уже не к упрощению, а к усложнению и к большой нагрузке на сервер. Поэтому если разобраться у меня там не третья нормальная форма и не 4я или 5я, а вторая с половиной.
На самом деле когда Я делал эти таблицы Я консультировался с людьми работающими именно с базами. И они помогли мне выбрать эту самую золотую середину. К слову сказать если например до 4йНФ все бить, то таблиц там получается вместо 4х (город, улица, адрес, лицевой счет) что-то порядка 9ти