Как я могу изменить свою базу данных, чтобы приспособить этот новый дизайн? - PullRequest
0 голосов
/ 08 ноября 2011

Я только что закончил некоторые изменения в базе данных, и теперь мне нужно перенести данные в соответствии с новым дизайном.

У нас была таблица транспортных средств с классификационным столбцом.Столбец классификации представлял собой строку, введенную кем-то в поле.Это был не столбец внешнего ключа.

Теперь я изменил конструкцию, чтобы у транспортного средства было несколько классификаций (да, это разрешают бизнес-правила), и классификации перемещены в таблицу поиска.Столбец классификации будет удален из таблицы транспортных средств и заменен таблицей соединений M: M, чтобы включить несколько категорий для каждого транспортного средства.Классификационная таблица была построена с использованием уникальных значений из столбца классификации в таблице транспортных средств.

По вопросу.Как мне построить таблицу M: M?Что такое SQL для этого?

На мой взгляд, процесс будет следующим: для каждой строки в таблице транспортных средств b) поиск строки классификации в новой таблице классификации c) вставка идентификатора классификации и транспортного средстваИдентификатор в таблице классификаторов транспортных средств.Затем, после проверки данных, я бы вручную удалил столбец классификации из таблицы транспортных средств.

Спасибо за любые предложения!

Редактировать 1: У меня созданы таблицы.Я просто спотыкаюсь об операторах SQL.

1 Ответ

0 голосов
/ 08 ноября 2011

Как мне построить таблицу M: M?

Гадание на некоторых типах данных, именах столбцов и т. П.*

insert into vehicle_classifications (vehicle_id, classification_id)
select t1.vehicle_id, t2.classification_id
from vehicles t1
inner join classifications t2 on t1.classification = t2.classification

Затем, после проверки данных, я бы вручную удалил столбец классификации из таблицы транспортных средств.

Убедитесь, что у вас есть ограничения внешнего ключа для нового соединениястол, прежде чем сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...