Разделение таблицы на две таблицы объединения - PullRequest
1 голос
/ 26 января 2012

Сейчас у меня есть база данных mysql с таблицей userphone(id, phone, type,userid), и я хотел бы разделить ее на две таблицы: phone(id,phone,type) и user_phone(id,user_id,phone_id).

Я делаю это, потому что я 'у меня будут другие вещи, которые также относятся к телефонным номерам, и все они должны храниться в одной таблице.(например, я также добавлю таблицу присоединения company_phone(id,company_id,phone_id), чтобы присоединиться к компаниям с их телефонными номерами).

Есть ли какой-нибудь хороший и эффективный способ сделать это?Я добавил новые таблицы, но не уверен, что лучше всего их заполнить.

Я могу добавить все телефоны из userphone в таблицу phone, например

INSERT INTO phone(phone,type) SELECT phone,type FROM userphone;

но это не добавляет запись в новую таблицу user_phone для каждого телефона.

Есть ли способ INSERT INTO две разные таблицы одновременно?(из исследований я знаю, что нет, но я не могу понять, как еще это сделать ...)

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 26 января 2012
  1. Создание таблицы user_phone как

    insert into phone(phone,type,user_id)
    select phone,type,user_id from userphone
    
  2. Создание таблицы user_phone как

    insert into user_phone (user_id,phone_id)
    select user_id,id from phone
    
  3. alter table phone drop column user_id

0 голосов
/ 26 января 2012

первый:

ВСТАВИТЬ В ТЕЛЕФОН (телефон, тип) ВЫБЕРИТЕ телефон, наберите ОТ пользователя;

второй:

выберите u.USER_ID, p.phone_ID от пользователя iPhone ВНУТРЕННИЙ РЕЙТИНГ Телефон р ON u.phone = p.phone и u.type = p.type

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