Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 заполнение таблиц  [new]
Rqw
Member

Откуда:
Сообщений: 120
Создал простенькую БД с тремя табличками.
Из management studio не могу через графический интерфейс заполнить любую табличку поскольку таблицы взаимосвязаны и для заполнения необходимо чтобы были заполнены другие таблицы.
схему прикладываю.

К сообщению приложен файл. Размер - 13Kb
14 фев 13, 16:27    [13927322]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
NULL -> id
Guest
в одной из циклически связанных таблиц изначально вставляйте NULL в поле с сылкой, затем добавляйте запись во вторую таблицу, потом меняйте NULL на нужное значение
14 фев 13, 16:30    [13927337]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
NULL -> id
в одной из циклически связанных таблиц изначально вставляйте NULL

Как же он в PK поставит NULL ?
14 фев 13, 16:32    [13927354]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Rqw
Создал простенькую БД
Все форумы / Проектирование БД
14 фев 13, 16:35    [13927387]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
NULL -> id
Guest
Glory
NULL -> id
в одной из циклически связанных таблиц изначально вставляйте NULL

Как же он в PK поставит NULL ?

зачем в PK? в FK.
14 фев 13, 16:38    [13927405]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
NULL -> id
зачем в PK? в FK.

на схему взгляните
14 фев 13, 16:40    [13927421]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
NULL -> id
Guest
Glory
NULL -> id
зачем в PK? в FK.

на схему взгляните

я мало пользовался этим интерфейсом, но насколько понял, основная проблема с tab1-tab2, между которыми перекрестные FK
tab2-tab3 связанны одним FK просто в tab3 ключ FK является одновременно и PK. Что как бы не запрещает заполнить нужными данными таблицы 1 и 2, и только после заполнить таблицу 3.
14 фев 13, 16:45    [13927463]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
Rqw, а вы можете словами описать то, что вам надо в итоге получить? Из схемы это не понятно.
14 фев 13, 17:13    [13927739]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Rqw
Member

Откуда:
Сообщений: 120
Cygapb-007
Rqw, а вы можете словами описать то, что вам надо в итоге получить? Из схемы это не понятно.


Все просто таблица Tab1 перечисляется отделы (название отдела, коментарий к этому отделу, и административно ответственно лицо (руководитель)). Все сотрудники перечисляются в Tab2 (Фамилия, имя, отдел ). Разумеется что в последнем поле Tab1 в качестве руководителей выбираются из списка сотрудников этого отдела перечисленных в Tab2. .. Вот и получилась перекрестная ссылка.
В таблице Tab3 перечисляются второстепенные данные о сотрудниках которые будет актуализировать отдел кадров (телефоны домашние, адреса и прочее..).

По идее последнее поле в Tab1 не может быть пустым (как это без руководителя или временно без и.о. ?) .
Однако пока не разрешил ему NULL он не дал мне заполнить эту таблицу.

Теперь не дает заполнить Tab2 потому что есть FK на Tab3. Всего лишь связь 1-1 ничего предосудительного. Разве какая то другая связь там может быть ? Сотрудники там должны быть перечислены только те которые уже имеются в организации.
Разве связь 1-1 не может существовать принципиально ? Эта связь насколько знаю существует в теории БД, почему не возможно реализовать на практике ?
15 фев 13, 06:36    [13929731]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Rqw
Member

Откуда:
Сообщений: 120
еще раз прикладываю картинку для вашего удобства

К сообщению приложен файл. Размер - 13Kb
15 фев 13, 06:37    [13929732]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Rqw
Member

Откуда:
Сообщений: 120
Паганель
Rqw
Создал простенькую БД
Все форумы / Проектирование БД



Другого ответа от тебя я и не ожидал.
Я периодически когда появляется время посещаю данный сайт, поэтому за утерей предыдущих логинов приходится заводить новые учетки. А так... я давно с тобой общаюсь на этом форуме. пока ты в подмножестве не понятных для меня людей в котором еще лежат французы, франкофилы. Насколько помню ты с украины. Всегда воспринимал украинцев как более активных и независимых состоявших в основном по менталитету из беглых крестьян не хотевших принимать за норму крепостное право. рушишь ты мое мирвозрение.
15 фев 13, 06:43    [13929735]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Rqw,

Отдел может существовать без начальника. Поэтому в Tab1 соотв. поле должно позволять NULL-значения.

По-другому SQL Server не работает.
15 фев 13, 06:48    [13929738]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
Если в Таб3 данные не обо всех из Таб2 - это не отношение 1-1, а просто FK_Таб3_Таб2. Если обо всех - логичнее хранить их в одной таблице
15 фев 13, 07:12    [13929746]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Rqw
Member

Откуда:
Сообщений: 120
Cygapb-007
Если в Таб3 данные не обо всех из Таб2 - это не отношение 1-1, а просто FK_Таб3_Таб2. Если обо всех - логичнее хранить их в одной таблице


Для моего случая действительно так. Но в общем случае получается реализовать на практике связь двух таблиц отношением 1-1 не возможно. Каждая из таблиц будет требовать наличия записи в противоположной таблице.
15 фев 13, 07:35    [13929758]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Rqw
в общем случае получается реализовать на практике связь двух таблиц отношением 1-1 не возможно. Каждая из таблиц будет требовать наличия записи в противоположной таблице.
Вы не то понимаете под связью 1:1, что понимает под этим термином большинство.
15 фев 13, 07:42    [13929762]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
Если 1-1, логичнее объединить в одну, а не мучиться с синхронизацией таблиц. Но даже в случае двух таблиц логичнее выбрать главную (генератор id) и ссылаться на нее из второстепенной, а не пытаться получить одинаковые id для двух разных таблиц, тем более с проверкой наличия нового id в другой таблице.
15 фев 13, 07:43    [13929763]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Rqw
Member

Откуда:
Сообщений: 120
Ennor Tiegael
Rqw,

Отдел может существовать без начальника. Поэтому в Tab1 соотв. поле должно позволять NULL-значения.

По-другому SQL Server не работает.


Я думаю на практике много случаев когда исключается вариант отсутствия ответственного лица за подразделение. Есть такие структуры. Какой выход из ситуации в этом случае ?
15 фев 13, 07:47    [13929768]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Rqw
Ennor Tiegael
Rqw,

Отдел может существовать без начальника. Поэтому в Tab1 соотв. поле должно позволять NULL-значения.

По-другому SQL Server не работает.

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

Или допустим отдел, из которого все уволились. Вообще все. Т.е. отдел существует, а сотрудников нет. Кого вы назначите?

Я могу привести вам кучу способов дизайна схемы, но вы сначала разберитесь, так ли железобетонны ваши постулаты. И что вы будете делать, когда заказчик потребует поведения системы, невозможного из-за слишком жесткого дизайна БД.
15 фев 13, 09:54    [13930097]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Rqw
Паганель
пропущено...
Все форумы / Проектирование БД



Другого ответа от тебя я и не ожидал.
Я периодически когда появляется время посещаю данный сайт, поэтому за утерей предыдущих логинов приходится заводить новые учетки. А так... я давно с тобой общаюсь на этом форуме. пока ты в подмножестве не понятных для меня людей в котором еще лежат французы, франкофилы. Насколько помню ты с украины. Всегда воспринимал украинцев как более активных и независимых состоявших в основном по менталитету из беглых крестьян не хотевших принимать за норму крепостное право. рушишь ты мое мирвозрение.
Так Вы в соответствующий форум сходили или нет?
15 фев 13, 11:16    [13930508]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Rqw
Member

Откуда:
Сообщений: 120
[quot Cygapb-007Но даже в случае двух таблиц логичнее выбрать главную (генератор id) и ссылаться на нее из второстепенной.[/quot]

Т.е. подразумевается превратить связь в 1-ко многим ? или я ошибаюсь ?
15 фев 13, 11:31    [13930634]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Rqw
Member

Откуда:
Сообщений: 120
Паганель
Rqw
пропущено...



Другого ответа от тебя я и не ожидал.
Я периодически когда появляется время посещаю данный сайт, поэтому за утерей предыдущих логинов приходится заводить новые учетки. А так... я давно с тобой общаюсь на этом форуме. пока ты в подмножестве не понятных для меня людей в котором еще лежат французы, франкофилы. Насколько помню ты с украины. Всегда воспринимал украинцев как более активных и независимых состоявших в основном по менталитету из беглых крестьян не хотевших принимать за норму крепостное право. рушишь ты мое мирвозрение.
Так Вы в соответствующий форум сходили или нет?


А ну да сходил. Надо же было взглянуть куда послал.... оказалось ничего необычного... все по старому...
15 фев 13, 11:32    [13930657]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Rqw
Паганель
пропущено...
Так Вы в соответствующий форум сходили или нет?


А ну да сходил. Надо же было взглянуть куда послал.... оказалось ничего необычного... все по старому...
и где же созданный там Вами топик?
15 фев 13, 11:34    [13930673]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Rqw
Member

Откуда:
Сообщений: 120
Паганель
Rqw
пропущено...


А ну да сходил. Надо же было взглянуть куда послал.... оказалось ничего необычного... все по старому...
и где же созданный там Вами топик?


Картина начала вырисовываться более ясно... перебегание из WEb разарботчика в Desctop оказалось лишь маленьким мазком в портрете интроверта.
15 фев 13, 11:55    [13930844]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
Rqw
Cygapb-007
Но даже в случае двух таблиц логичнее выбрать главную (генератор id) и ссылаться на нее из второстепенной.

Т.е. подразумевается превратить связь в 1-ко многим ? или я ошибаюсь ?
Вообще-то связь 1-1 подразумевает нечто другое, как вам уже говорили ранее 13929762, или как вот здесь:
http://www.cyberforum.ru/sql-server/thread427592.html
1:1 в пределах предприятия каждая вещь имеет свой уникальный номер
1:М человек может приобрести несколько билетов
М:М заказчики заказывают услуги у разных мастеров. Необходимо развязывать, путем введения сущности "Книга заказов"

Вы же пытаетесь заставить сервер сгенерировать одинаковый первичный ключ у двух независимых таблиц - и что вы при этом ожидаете от сервера? какова должна быть последовательность его действий?:) кроме как обругать вас по-своему нецензурно:)?
15 фев 13, 11:56    [13930851]     Ответить | Цитировать Сообщить модератору
 Re: заполнение таблиц  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Rqw
Паганель
пропущено...
и где же созданный там Вами топик?


Картина начала вырисовываться более ясно... перебегание из WEb разарботчика в Desctop оказалось лишь маленьким мазком в портрете интроверта.
так Вы там даже вопрос про свою схему не задали? Ну я тогда ничем помочь не могу
15 фев 13, 12:01    [13930883]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить