Однажды, пришел к администратору базы данных сотрудник и сказал:
- о великий админ, организуй мне, пожалуйста, в нашей базе вот такие вот таблички!
И админ вопросил его:
- А зачем тебе такие таблички?
- Я буду записывать в ключевую таблицу караваны верблюдов и вот в эти красивые таблички различные отчеты по их работе: как торговых, как фото-услуг, как прокатных.
- Ты не познал науку проектирования баз данных, сотрудник. Почему в этой таблице у тебя сразу две сущности? Ведь в одном караване может быть более одного верблюда? Или забыл ты, что "одна сущность - одна таблица" должны быть?
- Не забыл я, о великий админ, но связь между сущностями этими - один к одному. А потому смело объединяю я их, во благо моих запросов.
- Помнишь ли ты, сотрудник, что в прошлый раз втвои верблюды могли объединяться в караваны произвольной длины?
- Помню, о админ, но это другие верблюды, другие караваны, другие товары и другие работы и я хочу для них одну таблицу!
- да будет по-твоему, о неразумный - сказал админ и завел сотруднику для его верблюжьего ПО одну корневую таблицу, как было запрошено
Прошел год
- о великий админ базы данных, я хочу иметь возможность построить отчет не только по каждому каравану, но и по каждому верблюду!
- Но ведь говорил мне ты, что в каждом твоем караване лишь один верблюд? В чем же твоя проблема?
- Неразумный пользователь не хочет оформлять много маленьких караванов. Он утверждает что хочет вместо этого иметь дело с одним длинным.
- И?
- И я хочу, чтобы ты вставил между ключевой таблицей караванов и данными по их деятельности таблицу с верблюдами. И чтобы я вел деятельность по каждому из верблюдов, а не по каравану.
- Ну я же говорил тебе, о неразумный сотрудник?
- Но я был так уверен. Кстати, они уже год работали так, поэтому мне нужно, чтобы все данные сохранились в новой структуре.
- Я выполню и это твое желание, - вздохнул администратор базы данных.
- А кому сейчас легко? - развел руками сотрудник и ушел.
И призадумался молодой админ:
Ну структуру-то я новую создан, но... как сохранить ему его данные?.. Да еще и раскидать их по новой структуре?
Так админ узнал о новой штуке:
CREATE TABLE test (a1 integer, a2 varchar(16));
INSERT INTO test(a1, a2) SELECT b1, b2 FROM source_table_name;
Примечание:
http://www.w3schools.com/sql/sql_select_into.asp
http://stackoverflow.com/questions/25969/sql-insert-into-values-select-from
- о великий админ, организуй мне, пожалуйста, в нашей базе вот такие вот таблички!
И админ вопросил его:
- А зачем тебе такие таблички?
- Я буду записывать в ключевую таблицу караваны верблюдов и вот в эти красивые таблички различные отчеты по их работе: как торговых, как фото-услуг, как прокатных.
- Ты не познал науку проектирования баз данных, сотрудник. Почему в этой таблице у тебя сразу две сущности? Ведь в одном караване может быть более одного верблюда? Или забыл ты, что "одна сущность - одна таблица" должны быть?
- Не забыл я, о великий админ, но связь между сущностями этими - один к одному. А потому смело объединяю я их, во благо моих запросов.
- Помнишь ли ты, сотрудник, что в прошлый раз втвои верблюды могли объединяться в караваны произвольной длины?
- Помню, о админ, но это другие верблюды, другие караваны, другие товары и другие работы и я хочу для них одну таблицу!
- да будет по-твоему, о неразумный - сказал админ и завел сотруднику для его верблюжьего ПО одну корневую таблицу, как было запрошено
Прошел год
- о великий админ базы данных, я хочу иметь возможность построить отчет не только по каждому каравану, но и по каждому верблюду!
- Но ведь говорил мне ты, что в каждом твоем караване лишь один верблюд? В чем же твоя проблема?
- Неразумный пользователь не хочет оформлять много маленьких караванов. Он утверждает что хочет вместо этого иметь дело с одним длинным.
- И?
- И я хочу, чтобы ты вставил между ключевой таблицей караванов и данными по их деятельности таблицу с верблюдами. И чтобы я вел деятельность по каждому из верблюдов, а не по каравану.
- Ну я же говорил тебе, о неразумный сотрудник?
- Но я был так уверен. Кстати, они уже год работали так, поэтому мне нужно, чтобы все данные сохранились в новой структуре.
- Я выполню и это твое желание, - вздохнул администратор базы данных.
- А кому сейчас легко? - развел руками сотрудник и ушел.
И призадумался молодой админ:
Ну структуру-то я новую создан, но... как сохранить ему его данные?.. Да еще и раскидать их по новой структуре?
Так админ узнал о новой штуке:
CREATE TABLE test (a1 integer, a2 varchar(16));
INSERT INTO test(a1, a2) SELECT b1, b2 FROM source_table_name;
Примечание:
http://www.w3schools.com/sql/sql_select_into.asp
http://stackoverflow.com/questions/25969/sql-insert-into-values-select-from
Комментариев нет:
Отправить комментарий