|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Прочие БД - [решено] Как привести эту таблицу к 3-й нормальной форме? |
|
|
Прочие БД - [решено] Как привести эту таблицу к 3-й нормальной форме?
|
Новый участник Сообщения: 19 |
Профиль | Отправить PM | Цитировать
Я, учусь создавать БД на MAccess2007 и для начала я взял список пестицидов, разрешёных применению в 2011 году. Вот я застрял на отрывке связи препарат-норма расхода-обрабатываемый объект-назначение. Пример таблицы в прикреплёном файле. По ходу тут отношение многие-ко-многим, но я не хочу чтобы так было. Если уж тут никак, то как тут лучше привести к 3-й нормальной форме? Думаю, проффесионалы сайта по БД помогут ... ПОМОГИТЕ!!!
Приведено к 1-й нормальной форме препарат1 норма расхода а растение 1 вредитель 1 препарат1 норма расхода б растение 1 вредитель 2 препарат1 норма расхода в растение 2 вредитель 3 препарат1 норма расхода г растение 3 вредитель 3 препарат2 норма расхода д растение 4 вредитель 4 |
|
------- Отправлено: 10:44, 22-11-2011 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 13:12, 22-11-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать А как же всё-таки здесь таблицу привести к 3-й форме, чтобы в дальнейшем можно было легко им пользоваться?
|
------- Отправлено: 13:51, 22-11-2011 | #3 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Идентификаторы в различных таблицах это же здесь около 3-х таблиц! Или у меня плохое представление об идентификаторах
|
------- Отправлено: 14:39, 22-11-2011 | #4 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата koalder:
Если бы была жесткая зависимость расхода от препарата, то это одно дело. Но мы же можем взять расход Б, и разные препараты на разных вредителей. Давай начнем с другого - чего ты хочешь добиться? Не стремись делать все по книжке, не надо педантично выстраивать схемы по 1-2-3 формам нормализации, Кодда-Бойса и т.п. Главное поставить конкретную цель и оттуда уже плясать. Нормализация (Википелия) |
||
------- Отправлено: 16:50, 22-11-2011 | #5 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Норма расхода зависит от уничтожаемого вредителя на конкретном растении и препарата, т.е. жёсткая зависимость и никак иначе.
Поэтому в таком случае следует в отдельных таблицах пронумеровать все растения, вредители (препараты уже пронумерованы). Но как связать с нормой расхода и препаратом связь растение-вредитель. Или ещё сделать ещё одну таблицу "растение-вредитель-норма расхода" и каждой такой строчке приделать ключ? Комп после этого у меня будет завистать? ) |
------- Отправлено: 19:56, 22-11-2011 | #6 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата koalder:
Да, я соглашусь, здесь связь должна быть жесткой, в ущерб дублированием данных. Мне кажется, можно сделать как то так: Таблица "Препараты" - в ней поле - норма расхода(текстовое, например, или число) и еще одно поле - ИД Растения. Будут примерно такие строки: Вторая таблица - Растения ИД растения - Растение - ИД вредителя Ну и третья таблица - собственно сами вредители. Такой связкой мы можем однозначно выбрать, к примеру, что 200 граммами мышьяка лечится свекла от вредителя мухи. |
|
------- Отправлено: 01:04, 23-11-2011 | #7 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Действительно "добродушный помощник". Очень рад за такую помощь. Ещё чуть-чуть и Delirium переквалифицируется в агронома по защиет растений. :-).
Тут я всё понял! Препараты-Норма расхода не может повторяться. Как же я не додумался сделать так, будто Препарат-Норма расхода - это индивидуальное средство для решения проблемы Растение-Вредитель. Это значит появится ИД для каждого Препарат-Норма расхода-Растение-Вредитель как минимум (там есть и другие поля один-к-многим, но более понятные). Это так? |
------- Отправлено: 09:19, 23-11-2011 | #8 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата koalder:
Выведет всё по мышьяку. Если добавить в конце AND Препарат.НормаРасхода='200', то покажет только данные по Картошке и свекле. Ну и так далее |
|
------- Последний раз редактировалось Delirium, 25-11-2011 в 01:26. Отправлено: 01:14, 25-11-2011 | #9 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать koalder, я все таки отвечу на твое удаленное сообщение Все данные можно будет получить, лишь немного видоизменив приведенный мною запрос. А если все это делается в Access, то связи между таблицами и условия выборки можно будет задавать визуально и мышкой, а затем просмотреть код в режиме SQL.
|
------- Отправлено: 02:53, 26-11-2011 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Flash - [решено] Как привести флешку в чувства | Artur220688 | Накопители (SSD, HDD, USB Flash) | 14 | 05-11-2011 01:46 | |
Разное - ADATA Superior SH93 - как привести в чувство? | che74 | Накопители (SSD, HDD, USB Flash) | 9 | 23-08-2011 00:55 | |
Delphi - Помогите написать программулинку.Создать форме таблицу следующего вида: | ALaN_1 | Программирование и базы данных | 1 | 07-06-2010 05:46 | |
DC++ хабов нет на Акадо. Как быть в этой ситуации откуда кач на нормальной скорости ? | Rock | Хочу все знать | 5 | 20-04-2008 12:52 |
|