БД access нужна помощь в понимании.

Discussion in 'Болталка' started by n4e/\@, 16 Mar 2009.

  1. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    БД access нужна помощь в понимание.

    Не знал куда запостить, решил в болталку.
    Не могу разобраться с нормальными формами, вот в википедии есть пример Где там первичный ключ в последних двух таблицах?
    Вот у меня есть таблица: Название фирмы | адрес | ф.и.о контактного лица | телефон | факс
    Ключевое поле сейчас название фирмы т.к. оно не будет одинаковым.
    Я так понимаю что бы привисти эту таблицу к 3НФ мне надо ее разбить на 4-ри таблице?
    1. Название фирмы | адрес
    2. Адрес | ф.и.о
    3. ф.и.о | телефон
    4. Телефон | факс
    а что из этого должно быть ключевым полем? или я вобще не в ту сторону пошел?
    Заранее благодарен.
     
    #1 n4e/\@, 16 Mar 2009
    Last edited: 17 Mar 2009
  2. cergew

    cergew New Member

    Joined:
    8 Mar 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Вместо того, чтобы использовать уже имеющиеся поля в качестве ключевых, крайне желательно для каждого объекта БД создавать ключевое отдельное поле - код (обычно числовой и принимает значения порядкового номера записи)
     
  3. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    А тогда таблице будут выглядить?
    1. код (ключ) | Название фирмы
    2. код (ключ) | адрес
    3. код (ключ) | ф.и.о
    4. код (ключ) | телефон
    5. код (ключ) | факс
    Но вроде тогда это уже не будет 3нф
    Так то же вроде смысла не имеет:
    1. код (ключ1) | Название фирмы
    2. код (ключ2) | адрес
    3. код (ключ3) | ф.и.о
    4. код (ключ4) | телефон
    5. код (ключ5) | факс
     
  4. Connor

    Connor Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    295
    Likes Received:
    287
    Reputations:
    38
    На пример, таблица называется "клиент", значит первичный ключ будет "код клиента".
     
  5. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    Это понятно, а что с чем связывать? Вот скриншот http://s60.radikal.ru/i168/0903/3e/7cff50e83ac4.jpg
    Та таблица снизу это то что было(в краснйо рамке ФИО в новой таблице я обьеденил в один столбец) как в таблице сверху надо связь проложить? Везде от кода к коду? Просто в примере с википедии там идет связь
    фамили-> отдел
    отдел->телефон
    Но не одно из этих полей не может быть ключевым, потому что име не уникально. А что делать в моем случаи?
     
  6. Connor

    Connor Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    295
    Likes Received:
    287
    Reputations:
    38
    Ого, ну ты и намутил там.
    Что это вообще такое: "фирма:адрес", "фирма:ФИО", "фирма:название фирмы"?
    У тебя все три таблицы содержат информацию о фирмах, так? Тогда сделай одну таблицу "фирмы" и создай поля "почтовый адрес", "ФИО", "название фирмы", и "код фирмы" как первичный ключ.
    Таблицы связываются следующим образом, на пример таблица "клиент" там поля "код клиента" (который будет первичным ключем) и "название фирмы" (к которой он пренадлежит) и таблица "фирмы" там поля "имя фирмы" (которое будет п.к.) и "адрес фирмы", Тогда связать надо "название фирмы" из таблицы "клиент" с "имя фирмы" из таблицы "фирмы", потому как эти два поля имеют отношение друг к другу.
     
    #6 Connor, 17 Mar 2009
    Last edited: 17 Mar 2009
Loading...