Я разработал структуру базы данных, в которой собираются данные об автомобилях за определенный период времени для исследовательских целей. Владелец автомобиля каждый месяц вводит большое количество связанных данных об автомобиле, его характеристиках и т. Д. Однако теперь мне приходится обрабатывать ситуации, когда право собственности на автомобиль передается (возможно, более одного раза), и мне интересно, что лучший способ справиться с этим в базе данных будет.
Если автомобиль передан, предыдущий владелец больше не сможет добавлять данные об автомобиле, однако он по-прежнему сможет просматривать введенные данные вплоть до даты передачи. Новый владелец сможет вводить данные об автомобиле с момента передачи и далее. В исследовательских целях мне нужно иметь возможность объединять данные между этими переданными записями автомобилей и объединять их в один набор данных.
В настоящее время каждая запись автомобиля в БД принадлежит владельцу через внешний ключ в таблице Cars. Сейчас я думаю о том, чтобы создать рекурсивные отношения родитель / потомок между записями автомобилей, где одна запись автомобиля может принадлежать другой записи автомобиля (например, car_id в качестве внешнего ключа в таблице Car). Если запись автомобиля принадлежит другой записи автомобиля, это означает передачу. Это позволяет мне сохранять набор данных каждой записи автомобиля (специфичный для его владельца), а также связывать воедино связанные записи автомобиля. В дополнение к этому, я думаю о добавлении таблицы Car_transfer, чтобы записать дополнительные данные о передаче (вероятно, просто дату на самом деле, поскольку предыдущие и новые владельцы будут очевидны из owner_ids в таблице Car) - добавление date_transferred столбец в записи автомобиля, вероятно, будет в значительной степени избыточным для большинства записей, поэтому я не уверен, что одни эти данные заслуживают новой таблицы отношений.
Во всяком случае, я надеюсь, что это имеет смысл! Я ходил кругами, пытаясь найти разумное решение - любой совет был бы очень признателен!