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

Тема в разделе "Delphi - Базы данных", создана пользователем sultan, 28 ноя 2010.

  1. sultan

    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
     
  2. Гость


    Доброго дня!
    Не совсем верная структура приведенных таблиц, а точнее:
    Первая таблица содержит
    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(из первой таблицы) и все будет работать.
     
  3. Гость

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

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

    Вложения:

    • BaseStr.jpg
      BaseStr.jpg
      Размер файла:
      77,4 КБ
      Просмотров:
      44
    • Sample1.jpg
      Sample1.jpg
      Размер файла:
      32,8 КБ
      Просмотров:
      46
    • sample2.jpg
      sample2.jpg
      Размер файла:
      33,1 КБ
      Просмотров:
      45
Загрузка...

Поделиться этой страницей