Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > 1 PRIMARY KEY на 2 таблицы


Автор: w4Lkm4n 14.3.2011, 17:47
Доброго времени суток. Есть 1 таблица (с заказами), сейчас возникла необходимость сделать ещё 1 таблицу с заказами но, совсем другого типа. При этом должен быть уникальный ID на 2 таблицы. Т.е. если я добавил заказ в 1ю таблицу (пусть он получил ID - 3), то при добавлении заказа во 2ю таблицу ID в ней уже должен быть 4. Возможно такое реализовать? 
Можно конечно ввести отдельное поле, или создать ещё одну таблицу для хранения ключей... Но 1е приложение уже написано и его нужно "расширить". Очень не хочу всё переписывать в нём...

Автор: Akina 14.3.2011, 18:34
Переименуйте таблицу1.
Добавьте в неё поля, которые позволят хранить в ней и заказы второго типа (при этом часть полей по заказу первого либо второго типа - смотря какой заказ в конкретной записи,- будет содержать NULL).
Создайте на её основе вьюв с именем, которое было у таблицы1, и с отбором по IS NULL какого-нить характерного поля аказа второго типа. Соответственно он будет выбирать все заказы типа 1.
Аналогично создайте вьюв для выбора заказов типа 2.
Такие вьювы будут обновляемыми, соответственно в готовом приложении ничего менять не придётся. В то же время все заказы будут записываться в одну таблицу с использованием единого ID.

Автор: w4Lkm4n 14.3.2011, 18:48
Спасибо, наверное так и поступлю, просто полей получится очень много да и записей не мало

Автор: Akina 14.3.2011, 20:10
Цитата(w4Lkm4n @  14.3.2011,  19:48 Найти цитируемый пост)
 полей получится очень много 

Разделите таблицу на несколько. Кстати, это поднимет производительность, если правильно разделить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)