Высокопроизводительная вставка Sql Server в две связанные таблицы - PullRequest
0 голосов
/ 13 июня 2010

Господа,

У меня есть следующая физическая модель ниже, напоминающая наследование таблицы классов, как образец из Фаулера (http://martinfowler.com/eaaCatalog/classTableInheritance.html)

CREATE TABLE [dbo].[ProductItem] (
[IdProductItem]     INT             IDENTITY (1, 1) NOT NULL,
[IdPointOfSale]     INT             NOT NULL,
[IdDiscountRules]   INT             NOT NULL,
[IdProductPrice]    INT             NULL);

CREATE TABLE [dbo].[Cellphone] (
[IdCellphone]    INT          IDENTITY (1, 1) NOT NULL,
[IdModel]    INT          NOT NULL,
[IMEI]  NVARCHAR (150) NOT NULL,
[IdProductItem] INT  NULL
);

ProductItem - мой базовый класс. Он обрабатываетвсе действия, связанные с продажами. Мобильный телефон является подклассом от ProductItem. Он добавляет атрибуты и особенности поведения, которые мне нужно использовать при продаже мобильного телефона (номер IMEI, активировать мобильный телефон и т. д.)

Мне нужноотслеживать каждый элемент инвентаря в отдельности. Когда я получаю партию из 10.000 мобильных телефонов, мне нужно загрузить всю эту информацию в мою систему. Мне нужно создать мобильные телефоны и элемент продукта в моей базе данных.

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

С уважением

Камило

1 Ответ

0 голосов
/ 13 июня 2010

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

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