Трудности с созданием базы данных в Delphi

  • Автор темы sultan
  • Дата начала
S

sultan

Всем привет! Короче такая вот задумка есть две таблицы:
1-Личные данные с полями:
1) ID
2) FIO
3) God Rojdeniya
4) Status
и
2-Служебные данные с полями:
1) ID
2) FIO
3) Otdel
4) Doljnost
5) Status
, так вот немогу сделать так штобы когда выбираю во 2 таблице через DBLookupComboBox (который связан с 1 таблицей через поле ID) поле ID, сразу заполнялись поля FIO, Status, которые соответствуют полю ID. Кстати поле ID ключ. поле в обоих таблицах.
Короче вопрос как сделать автозаполнение в TBGRID второй таблицы согласно выбраному полу ID
 
G

Guest

Всем привет! Короче такая вот задумка есть две таблицы:
1-Личные данные с полями:
1) ID
2) FIO
3) God Rojdeniya
4) Status
и
2-Служебные данные с полями:
1) ID
2) FIO
3) Otdel
4) Doljnost
5) Status
, так вот немогу сделать так штобы когда выбираю во 2 таблице через DBLookupComboBox (который связан с 1 таблицей через поле ID) поле ID, сразу заполнялись поля FIO, Status, которые соответствуют полю ID. Кстати поле ID ключ. поле в обоих таблицах.
Короче вопрос как сделать автозаполнение в TBGRID второй таблицы согласно выбраному полу ID


Доброго дня!
Не совсем верная структура приведенных таблиц, а точнее:
Первая таблица содержит
1) ID
2) FIO
3) God Rojdeniya
4) Status
То вторая должна содержать
1) ID(А ЭТО ПОЛЕ МОЖНО И НЕ ИСПОЛЬЗОВАТЬ)
2) FIO(ЭТО ПОЛЕ НЕ НУЖНО, Т.К. ФИО УЖЕ ЕСТЬ В ПЕРВОЙ ТАБЛИЦЕ)
3) Otdel
4) Doljnost
5) Status
И
6)ID_TABLE1 (ИМЕННО ЗДЕСЬ БУДЕТ ХРАНИТЬСЯ ССЫЛКА НА ЗАПИСЬ ИЗ ПЕРВОЙ ТАБЛИЦЫ. ДОЛЖНО БЫТЬ ИНДЕКСНЫМ)

Теперь тебе нужно организовать связь ID_TABLE1(из второй таблицы) и ID(из первой таблицы) и все будет работать.
 
G

Guest

А редактировать как? В том смысле что если у юзера таких записей не одна, иначе зачем городить 2 таблицу..
Не вижу проблемы. Естественно что связь будет "один ко многим", К примеру если работник перешол из одного отдела в другой, то в первой базе будет 1 запись, а с ней связанных во второй таблице уже две. Эта связь будет поддерживаться при помощи ID из первой таблицы и ID_TABLE1 из второй. А ключевое поле ID во второй таблице можно и не использовать.
Если связать ключевые поля обеих таблиц то получится связь "один к одному" - чего как я понял не нужно.
 
G

Guest

АлександрДакис Если связь 1 ко многим то как без ИД редактировать данные? нужен уникальный ключ, его не вижу.
Этот уникальный ключ есть в первой таблице (первое ключевое поле).
Только не совсем понятен замысел автора - вторая таблица которая содержит должности - это справочная таблица или нет?
К примеру, мне видится следующий вариант -
Есть таблица где хранятся личные данные по работникам. Теперь надо к каждому работнику проставить соответствующую должность - следовательно есть вторая таблица где перечислены все должности. В таком случае связь таблиц изменится на обратную, а именно - одна должность может быть у разных работников. В данном случае даже не придется MasterFields указывать, а достаточно будет добавить новое Lookup поле в первой таблице.
И второй вариант (видимо то чего хочет автор) - при выборе должности из второй таблице DBGrid отображает список работников которые занимают эту должность -
Вот тут нужно будет установить связь глвный - подчиненный.
Лучше покажу на примере -
На первом рисунке приведена структура таблиц (и заметь sax_ol - только в одной таблице есть ключевое поле!!!)
На втором результат работы программы по первому варианту
На третьем рисунке результат работы программы по второму варианту
 

Вложения

  • BaseStr.jpg
    BaseStr.jpg
    61,8 КБ · Просмотры: 529
  • Sample1.jpg
    Sample1.jpg
    26,3 КБ · Просмотры: 533
  • sample2.jpg
    sample2.jpg
    25 КБ · Просмотры: 527
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!