Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2010, 21:56   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию отношения в бд sql server.как связать поля

у меня есть таблица FIO и еще passport и например я ввожу данные о человеке заполняю данные касающиеся одного человека в нескольких таблицах.и вот вопрос,как мне связать их?так называемые отношения как организовать,мне надо чтоб потом когда я выделю в таблице fio конкретного человека в таблице passport и в остальных отображались именно те данные которые касаются его,которые я вводил для него.подскажите пожалуйста как это сделать?и прошу подробнее так как у меня это впервой)))
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 13.05.2010, 11:29   #2
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

если правильно разработал базу, у тебя в таблице FIO должено быть поле записи которого будут уникальними (например ID). В таблице passport кроме полей с паспортными данными введи поле (например fio_id) и потом по этому полю свяжи 2 таблицы. для sql server-а поле ID таблицы FIO будет PK, а для таблицы passport поле fio_id будет FK. Ну и поищи литературу по БД.
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 13.05.2010, 20:00   #3
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

да у меня есть такие поля идентефицирующие типа.UID в таблице fio и fioid в таблице passport,и я щас нажал правой кнопкой по этому столбцу и там выбрал отношения,дальше выбрал добавить и у меня там появилось FK_fio_fio а во второй FK_passport_passport.я так понимаю fk это значит forein key а pk primary key.но почему у меня ввезде FK??и потом как их использовать?у меня уже в таблице fio поле uid равно 28 а в таблице passport еще равно 0 потому что я там ниче пока не создавал,и при запросе они же не будут совпадать,можно как то сбросить значение UID поля до 0???извините если я туплю просто я пока не понимаю
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 14.05.2010, 21:24   #4
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

как собствеено сделать определенный столбец внешним ключем в sql server?? я вижу только первичный ключ когда нажимаю правой в меню.
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 17.05.2010, 08:14   #5
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Код:
ALTER TABLE your_table
 ADD CONSTRAINT FK_blabalbla
FOREIGN KEY ( id_blablabla ) REFERENCES OtherTableWithPK ( id_blablabla )
edgy вне форума Ответить с цитированием
Старый 17.05.2010, 22:36   #6
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от edgy Посмотреть сообщение
Код:
ALTER TABLE your_table
 ADD CONSTRAINT FK_blabalbla
FOREIGN KEY ( id_blablabla ) REFERENCES OtherTableWithPK ( id_blablabla )
а это нельзя сделать с помощью кнопки?
я щас попытался сделать следующее
Код:
ALTER TABLE passport
 ADD CONSTRAINT FK_fioid
FOREIGN KEY ( fioid ) REFERENCES fio ( UID )
не знаю правильно я сделал или нет но он выдал следующее
(Конфликт инструкции ALTER TABLE с ограничением FOREIGN KEY "FK_fioid". Конфликт произошел в базе данных "CZN", таблица "dbo.FIO", column 'UID'.)
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось betirsolt; 17.05.2010 в 22:56.
betirsolt вне форума Ответить с цитированием
Старый 18.05.2010, 07:31   #7
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Цитата:
Сообщение от betirsolt Посмотреть сообщение
а это нельзя сделать с помощью кнопки?
Учись все изменения в БД делать скриптами. Ну и к тому же желательно сохранять и документировать все свои скрипты. А то в жизни всякое бывает...

Цитата:
Сообщение от betirsolt Посмотреть сообщение
не знаю правильно я сделал или нет но он выдал следующее
(Конфликт инструкции ALTER TABLE с ограничением FOREIGN KEY "FK_fioid". Конфликт произошел в базе данных "CZN", таблица "dbo.FIO", column 'UID'.)
Возможно, что у тебя в таблицах имеются несвязанные записи.
Хотя... Ну в общем, для того чтобы точно ответить на вопрос - почему так произошло - нужно знать структуру таблиц и данные, которыми наполнены таблицы.
edgy вне форума Ответить с цитированием
Старый 18.05.2010, 08:04   #8
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

я же вроде описал структуру как мог.таблица fio понятно для чего,в ней есть PK(поле UID),а в таблице passport есть поле fioid который я хочу сделать FK ссылающийся на PK таблицы fio,вот вроде как понятно должно быть,и вот это я не знаю как сделать
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 18.05.2010, 08:34   #9
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Несвязанные записи в этих таблицах есть?
edgy вне форума Ответить с цитированием
Старый 18.05.2010, 13:30   #10
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от edgy Посмотреть сообщение
Несвязанные записи в этих таблицах есть?
извини,я не понимаю что ты имеешь ввиду,можешь новичку объяснить что за связанные записи?я вроде сам связи там делать и не умею в этом и есть проблема
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
delphi+sql server 2005 как соединиться с базой? betirsolt БД в Delphi 5 04.05.2010 19:47
SQL связать поля Virga БД в Delphi 1 24.08.2009 12:52
Доступ к БД (SQL server) в ОС Windows server 2003 Mann SQL, базы данных 2 07.12.2008 19:15
как связать поля разных типов doncova1 Microsoft Office Access 5 11.03.2008 00:15
Как сделать MS SQL логические поля? Azamat_k БД в Delphi 0 04.04.2007 13:42