У меня проблема с 3 таблицами. Первый имеет первичный ключ и некоторые другие вещи. Мы назовем его Stuff
, с StuffID
в качестве столбца первичного ключа. Давайте назовем вторую таблицу Things
, с StuffID
в качестве внешнего ключа, Thing1, Thing2
и Thing3
в качестве других столбцов.
В настоящее время в нашей производственной базе данных Thing1, 2
и 3
имеют тип varchar
. В нашу базу данных разработки мы добавили еще одну таблицу ThingTypes
, в которой для столбцов есть ThingID
, ThingName
и ThingNumber
.
Итак, я хочу, чтобы это выглядело так:
Материал Стол
StuffID (as primary key)
Other Stuff columns
Вещи
StuffID (as foreign key)
Thing1 (int, but corresponds to a ThingTypeID)
Thing2 (int, corresponds to a ThingTypeID)
Thing3 (int, corresponds to a ThingTypeID)
ThingTypes
ThingTypeID
ThingTypeName
ThingTypeNum
В настоящее время у меня есть varchar
имен в столбцах Thing1,2,3
в таблице Things
, которые будут соответствовать соответствующим ThingType
после внесения изменений.
Еще одна вещь :). 1 в столбце ThingTypes.ThingTypeNum
соответствует диапазону ThingTypeNames
, который будет найден в столбце Things.Thing1
, а 2 соответствует диапазону ThingTypeNames
, который будет найден в столбце Things.Thing2
. И то же самое для Thing3
.
Так что я не уверен, когда я делаю это преобразование в нашу производственную базу данных, какой лучший способ сделать это. Я использую SQL серверную базу данных с SQL Server Management Studio (SSMS), поэтому я могу запускать сценарии в SSMS в режиме SQLCMD.
Я знаю свой путь SQL, но я не эксперт, но я новичок в управлении базами данных. В настоящее время я не могу работать с копией производственной базы данных, которую я хочу использовать для тестирования моих сценариев SQLCMD, но я пытаюсь все настроить заранее, пытаясь написать нужные мне сценарии.
Я пытался выполнить несколько запросов, используя несколько объединений, но я не могу заставить их работать так, как я хочу. При преобразовании имен varchar
в таблице Things
в соответствующие ThingTypeID
мне нужно сохранить соответствующие StuffID
.
Надеюсь, это имеет смысл. Любая помощь будет оценена.