Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
БД access нужна помощь в понимание. |

17.03.2009, 00:54
|
|
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме: 1289087
Репутация:
59
|
|
БД access нужна помощь в понимание.
Не знал куда запостить, решил в болталку.
Не могу разобраться с нормальными формами, вот в википедии есть пример Где там первичный ключ в последних двух таблицах?
Вот у меня есть таблица: Название фирмы | адрес | ф.и.о контактного лица | телефон | факс
Ключевое поле сейчас название фирмы т.к. оно не будет одинаковым.
Я так понимаю что бы привисти эту таблицу к 3НФ мне надо ее разбить на 4-ри таблице?
1. Название фирмы | адрес
2. Адрес | ф.и.о
3. ф.и.о | телефон
4. Телефон | факс
а что из этого должно быть ключевым полем? или я вобще не в ту сторону пошел?
Заранее благодарен.
Последний раз редактировалось n4e/\@; 17.03.2009 в 02:26..
|
|
|

17.03.2009, 01:28
|
|
Новичок
Регистрация: 08.03.2009
Сообщений: 3
Провел на форуме: 34087
Репутация:
0
|
|
Вместо того, чтобы использовать уже имеющиеся поля в качестве ключевых, крайне желательно для каждого объекта БД создавать ключевое отдельное поле - код (обычно числовой и принимает значения порядкового номера записи)
|
|
|

17.03.2009, 01:37
|
|
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме: 1289087
Репутация:
59
|
|
Сообщение от cergew
Вместо того, чтобы использовать уже имеющиеся поля в качестве ключевых, крайне желательно для каждого объекта БД создавать ключевое отдельное поле - код (обычно числовой и принимает значения порядкового номера записи)
А тогда таблице будут выглядить?
1. код (ключ) | Название фирмы
2. код (ключ) | адрес
3. код (ключ) | ф.и.о
4. код (ключ) | телефон
5. код (ключ) | факс
Но вроде тогда это уже не будет 3нф
Так то же вроде смысла не имеет:
1. код (ключ1) | Название фирмы
2. код (ключ2) | адрес
3. код (ключ3) | ф.и.о
4. код (ключ4) | телефон
5. код (ключ5) | факс
|
|
|

17.03.2009, 02:14
|
|
Постоянный
Регистрация: 15.11.2006
Сообщений: 349
Провел на форуме: 9019502
Репутация:
1165
|
|
На пример, таблица называется "клиент", значит первичный ключ будет "код клиента".
|
|
|

17.03.2009, 02:25
|
|
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме: 1289087
Репутация:
59
|
|
Это понятно, а что с чем связывать? Вот скриншот http://s60.radikal.ru/i168/0903/3e/7cff50e83ac4.jpg
Та таблица снизу это то что было(в краснйо рамке ФИО в новой таблице я обьеденил в один столбец) как в таблице сверху надо связь проложить? Везде от кода к коду? Просто в примере с википедии там идет связь
фамили-> отдел
отдел->телефон
Но не одно из этих полей не может быть ключевым, потому что име не уникально. А что делать в моем случаи?
|
|
|

17.03.2009, 02:52
|
|
Постоянный
Регистрация: 15.11.2006
Сообщений: 349
Провел на форуме: 9019502
Репутация:
1165
|
|
Ого, ну ты и намутил там.
Что это вообще такое: "фирма:адрес", "фирма:ФИО", "фирма:название фирмы"?
У тебя все три таблицы содержат информацию о фирмах, так? Тогда сделай одну таблицу "фирмы" и создай поля "почтовый адрес", "ФИО", "название фирмы", и "код фирмы" как первичный ключ.
Таблицы связываются следующим образом, на пример таблица "клиент" там поля "код клиента" (который будет первичным ключем) и "название фирмы" (к которой он пренадлежит) и таблица "фирмы" там поля "имя фирмы" (которое будет п.к.) и "адрес фирмы", Тогда связать надо "название фирмы" из таблицы "клиент" с "имя фирмы" из таблицы "фирмы", потому как эти два поля имеют отношение друг к другу.
Последний раз редактировалось Connor; 17.03.2009 в 04:57..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|