Я пытаюсь оптимизировать дизайн моей базы данных для простоты использования и быстрых запросов.Что считается лучшим дизайном базы данных и более эффективным?Я хочу хорошо масштабироваться и не допускать замедления по мере увеличения базы данных.Я использую Postgres.Все эти отношения будут отношениями от 1 до 1.
Модели / таблицы:
Cars
Trucks
Boats
Planes
Вариант использования A:
Форма поиска, которая запрашивает все записи в пределах определенного радиусаместоположения по всем 4 типам таблиц (автомобили, грузовики, лодки и самолеты).
вариант использования B:
Форма поиска, которая запрашивает все записи в пределах определенного радиуса местоположения в1 таблица (автомобили, грузовики, лодки или самолеты), но также имеет конкретные параметры запроса для этой таблицы / модели.
Вопрос о конструкции:
Какой дизайн рекомендуется?Рекомендуются какие-либо альтернативные схемы?
Схема 1:
4 таблицы с 7 общими полями, относящимися к адресу, включая поля широты и долготы и 50 полей полей, уникальных для каждой таблицы.Каждая таблица также имеет другое общее поле, «Обзор», которое является текстовым полем.
Поля адреса и обзора всегда обязательны.
Дизайн 2:
1 Таблица адресов (7 полей) - 1 к 1 Полиморфная ассоциация с автомобилями, грузовиками, лодками и самолетами
4 Таблицы (автомобили, грузовики, лодки, самолеты), с 50 полями, специфичными для каждой таблицы, включают текстовое поле Обзоробщие для всех таблиц.
Всегда требуются поля адреса и обзора.
Конструкция 3:
1 Таблица адресов (7 полей) - от 1 до 1 Полиморфное сопоставление с автомобилями,Грузовые автомобили, лодки и самолеты
4 таблицы (автомобили, грузовики, лодки, самолеты), с 50 полями, специфичными для каждой таблицы.Грузовики, лодки и самолеты
Адресные и обзорные поля обязательны для заполнения.
Конструкция 4
1 Таблица транспортных средств с (7 адресных полей и одно поле JSONB).Поле JSONB будет хранить все пользовательские поля.