Как вставить две строки в один столбец с одинаковым идентификатором, разными культурами и на разных языках? - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть таблица Культура, Компании и КомпанииМесто. В таблице культур у меня есть CultureId, CultureCode и DisplayName, в компаниях у меня есть CompanyID, Name и в CompaniesLocale у меня есть CompanyID, CultureId, Name. Я вставил в языки в таблице культуры английский и немецкий. Теперь, когда я создаю новую компанию, я собираюсь вставить в CompaniesLocale то же имя, которое создается в компаниях, но как описано на другом языке (я выбираю немецкий, но я могу быть, возможно, кириллицей. Я хочу, чтобы новая компания была добавлена ​​первой Компании, затем в CompaniesLocale с тем же COmpanyId, но с соответствующим CultureId для языка. Это возможно?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2011

В принципе, я вижу два подхода.

  1. Две вставки. Сначала вставьте запись с именем базовой локали в Company, получите новый CompanyID, затем вставьте остальные имена в CompanyLocale, используя полученный CompanyID. Предполагается, что есть триггер ON Company FOR INSERT, который добавляет имя базовой локали к CompanyLocale.

  2. Одна вставка. Вставьте все имена в CompanyLocale с пустыми значениями CompanyID. Это также предполагает использование триггера, на этот раз это ON CompanyLocale FOR INSERT. Триггер вставляет новую запись в Company, получает новый идентификатор и обновляет его для вновь вставленных CompanyLocale записей. Также предполагается, что столбец внешнего ключа CompanyLocale.CompanyID, который ссылается на Company.ID, должен разрешать значения NULL. (С первым подходом я думаю, что может быть запрещено получать значения NULL.)

0 голосов
/ 10 февраля 2011

что-то вроде вставить в значения CompanyLocal (CompanyId, CultureId, Name) (1, 1, «spreken zie deutch»)

...