У меня есть приложение, которое позволяет полностью настраивать «контакты». Мой способ сделать это — позволить администратору настроить все поля, разрешенные для контакта. Моя база данных выглядит следующим образом:
Контакты
- id
- активный
- Последнее посещение
- создано на
Поля
- id
- метка
FieldValues
- id
- идентификатор поля
- контактид
- отклик
Таким образом, таблица контактов сообщает только о том, активны ли они и их идентификатор; таблицы полей содержат только метку поля и идентификатор, а таблица значений полей — это то, что фактически содержит данные для контактов (имя, адрес и т. д.)
Так что эта установка отлично работала для меня до сих пор. Клиент хотел бы получить совокупный отчет, но сказать состояние всех контактов в определенном городе. Фактически данные должны выглядеть следующим образом
Калифорния (из таблицы полей)
- Коста-Меса - (из таблицы полей) 5 - (учитывается в таблице значений полей)
- Ньюпорт 2
Коннектикут
- Уоллингфорд 2
- Клинтон 2
- Берлин 5
Поле состояния может иметь идентификатор 6, а поле города может иметь идентификатор 4. Я не знаю, долго ли я смотрел на этот код, чтобы понять его, или что,
SQL для создания этих трех таблиц можно найти по адресу https://s3.amazonaws.com/davejlong/Contact.sql