Структура базы данных для авто

80
09 февраля 2022, 04:50

Допустим на сайте будут автомобили, некоторые из которых будут электромобили.
Т.е. будет марка авто одна на все типы авто, но модели и характеристики должны отличаться для каждого типа авто(для электромобилей дополнительные характеристики).
Как организовать такую базу?
Предполагаю, что должна быть общая таблица на все типы авто: cars с полями id, mark, price, а в таблице характеристик будут такие поля: id, cars_id, model, params, type.
Или должна быть отдельная таблица для электромобилей с характеристиками?
Посоветуйте пожалуйста, как это организовать.
С базами ещё мало работал

Answer 1

Конечно все зависит от того что должно в конце получится. Можно так:

cars [ 
    car_id, 
    mark_id, 
    model_id, 
    type_id, 
    category_id,
    color_id, 
    transmission_id,
    mileage,  
    year of manufacture, 
    ... 
]
cars_marks [mark_id, name, ...]
cars_types [type_id, name, ...]
cars_models[model_id, name, ...]
cars_categories[category_Id, name, ...]
cars_colors[color_Id, name, ...]
cars_transmissions[ transmission_id, name, ...]

специфические атрибуты, вынесети в отдельную таблицу, например так

cars_custom_field[ custom_field_id, name, field_value_type_id, ... ] //дополнительные характеристики
cars_custom_field_types[ field_value_type_id, name ] //типы возвращаемых значений
cars_types_custom_fields[ car_type_id, field_id ] //связки типа авто с характеристикой
cars_details[ car_id, custom_field_id, value ] //значения дополнительных характеристик

поля params лучше не делать, а разносить параметры по разным столбцам

READ ALSO
Программа на java не находит файл по указанному пути

Программа на java не находит файл по указанному пути

Не получается обратиться к файлу, который лежит не в папке проектаВот этот кусок кода выводит "File not found"

105
Ошибка при сравнении объектов

Ошибка при сравнении объектов

При тестировании проверяются два методаВ первом мы сравниваем аналогичные объекты из списка, один из которых получен из класса DAOImpl, а другой...

98
Java FX инициализация полей

Java FX инициализация полей

Пишу свое первое приложение на JavaFX - чатСтолкнулся с проблемой обновления данных в компоненте сцены JavaFX - textArea

76
Время конкретного пользователя в Java

Время конкретного пользователя в Java

В коде имеется сервис, который разрешает/отклоняет HTTP запрос в зависимости от времени (до 11:00 разрешено, после - запрещено)На текущий момент...

102