Нормализация БД Ms Access

  • Автор темы viktor059
  • Дата начала
V

viktor059

#1
Есть БД, в ней таблица Студент с ~30 атрибутами, они вроде полностью зависят от первичного ключа, но с таким кол-вом артрибутов не очень удобно работать. Помогите пожалуйста, большинство связей получается 1 к 1. В архиве БД 2003 и 2007 access
 

Вложения

BOPOHA

Well-known member
26.04.2006
118
0
#2
1. Родителей выделить в отдельную таблицу.
2. Связь между студентами и родителями.
2.1. В таблице студенты добавить два поля: код папы и код мамы.
2.2. В таблице родителей добавить код студента и код пола. Код пола будет выполнять также роль типа связи: Мужской - Папа, Женский - Мама. Думаю, что второй вариант будет лучше и удобней.
2.3. Я думаю, что было бы правильней выделить информацию об обучении следует вынести в отдельную таблицу.
 
A

Aleksey

#3
Извиняюсь, но зачем плодить поля? Зачем выносить родителей в отдельную таблицу, а вместо них добавлять два новых поля?
2.1. В таблице студенты добавить два поля: код папы и код мамы.
И почему, кроме как избавиться от родителей, мысль дальше не пошла? Почему, например, паспорт не выбросить? :) (Шучу конечно)

Для начала предлагаю определиться, что именно мешает в таблице Студенты и избавиться от именно от мешающего. Логично было бы вынести паспортные данные в отдельную таблицу. Связь здесь и далее по ID студента, никаких полей добавлять не надо, то есть создать таблицу Паспорт, ее ключевым полем будет ID равное ID студента, владеющего этим паспортом. Далее вынести родителей в отдельную таблицу, связь так же по ID. Пол студенту предлагаю не менять и оставить в той же таблице ;). Этого уже достаточно, чтобы таблица Студенты "похудела". Можно идти и дальше, но тогда уже будет тяжело и неудобно связывать кучу таблиц между собой.
 
E
#4
А зачем ваще что-то куда-то выносить? ну и что что 30? вам же не всегда надо все, вот и берите по мере надобности.