Какой самый эффективный способ объединения таблиц при объединении баз данных - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть две базы данных (db1 и db2), которые раньше использовались двумя разными программами, и теперь я объединяю их (базы данных и программы), поэтому db2 станет частью db1. Итак, я знаю, как скопировать таблицы из db2 в db1, но у меня есть таблица со списком пользователей.

Я хочу, чтобы обе программы имели доступ к одному и тому же списку пользователей, поэтому мне нужно объединить таблицы двух пользователей. Теперь проблема в том, что пользовательская таблица db2 имеет столбцы, отличные от db1. Итак, как мне это сделать? Должен ли я просто добавить больше полей в таблицу db1? Или я должен просто скопировать как можно больше релевантных данных, а затем создать другую таблицу для хранения полей, которые не заданы в пользовательской таблице db1?

Ответы [ 4 ]

1 голос
/ 09 мая 2018

В первую очередь вам следует обратить внимание на то, что эти таблицы означают для бизнеса .Названия столбцов не скажут вам этого.Если в обеих таблицах есть имя столбца «lastaccesstime», этот факт сам по себе не говорит НИЧЕГО о том, что содержимое этих соответствующих столбцов означает для соответствующих пользователей.

Это упражнение не являетсяпросто механическая операция («копирование таблиц», «добавление дополнительных полей»), как вы думаете, это так.

0 голосов
/ 09 сентября 2011

Создайте ВИД, который объединяет обе таблицы.

0 голосов
/ 09 сентября 2011

Я бы начал с определения того, как будет выглядеть объединенная база данных, если вы не исходите из существующих баз данных. Это включает в себя рассмотрение нормализации, индексации, типов столбцов и т. Д. Затем посмотрите, есть ли простое сопоставление каждой из текущих баз данных с новой структурой. Если это так, просто напишите SQL для сопоставления. Если нет, то у вас есть два варианта. Вы можете написать более сложный SQL (или даже процедуру на каком-то другом языке) для отображения данных. В качестве альтернативы, вы можете рассмотреть возможность изменения вашей идеальной целевой схемы базы данных, чтобы упростить импорт устаревших данных. Наконец, выбрав подход, вы можете решить, проще ли изменить одну из существующих баз данных или создать совершенно новую и перенести данные из обеих баз данных в новую. (Если вы сделаете последнее, вы можете переименовать его в один из старых и назвать его модифицированной версией, если это поможет сохранить совместимость с существующим кодом приложения.)

0 голосов
/ 09 сентября 2011

В зависимости от ваших потребностей, любое из них может быть приемлемым решением.

Если дополнительные поля существуют только для определенных пользователей, то, возможно, перейдите со вторым вариантом.Но если все поля должны существовать для каждого пользователя, то я бы просто сказал добавить новые поля в вашу пользовательскую таблицу, а затем беспокоиться о повторном заполнении данных для других пользователей.,

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