8 / 8 / 1
Регистрация: 01.04.2011
Сообщений: 88
1

Нормализация таблиц

27.12.2011, 16:11. Показов 2574. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
в бд такие таблицы:

студент
ids
фамилия
имя
отчество
курс
группа
телефон


родители
id
ids
кем_является
фамилия
имя
отчество
телефон


встреча
id
ids
дата
причина
результат


Это нормальная структура?)

И как мне сделать запрос на вывод данных в 2 dbgrida? т.е. в первом дата встречи иинфа о студенте, а во втором соотетствующие этому студенту записи из таблицы родители.

запрос типа
T-SQL
1
where student.ids=parents.ids and student.ids=visit.ids
будет выводить повторяющиеся строки в 1 гриде =\
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2011, 16:11
Ответы с готовыми решениями:

Соединение двух таблиц, фильтрация данных по данным из этих 2 таблиц
Помогите, пожалуйста, написать запрос SQL в Delphi 7. Есть форма, на ней кнопка и DBGrid. DBGrid...

База данных "Учет программного обеспечения" (нормализация)
Добрый день, нужна помощь, тема: Создание БД "Учет программного обеспечения", таблицы создаются в...

Нормализация таблиц
Здравствуйте, думаю для большинства из вас это задание покажется легким, но для меня нет, т.к...

Нормализация таблиц
Имеется бд ГИБДД. Владелец машины может быть физ. лицом или юр. лицом. При этом один владелец может...

12
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
27.12.2011, 16:26 2
Цитата Сообщение от Sheepz Посмотреть сообщение
кем_является
Вынести в таблицу relation (перечисление мама, папа, отчим, мачеха, опекун, тетя....) и установить внешний ключ на parents.
Добавить внешний ключ Visit-Parent
1
8 / 8 / 1
Регистрация: 01.04.2011
Сообщений: 88
27.12.2011, 16:42  [ТС] 3
спасибо, теперь как-бы разобраться с запросами на выборку :Е
0
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
27.12.2011, 16:51 4
Цитата Сообщение от Sheepz Посмотреть сообщение
спасибо, теперь как-бы разобраться с запросами на выборку
для каждого Tquery свой запрос делать
0
8 / 8 / 1
Регистрация: 01.04.2011
Сообщений: 88
27.12.2011, 17:01  [ТС] 5
ну я использую adoquery, просто раньше структура бд была другая и там было всё очень просто, а когда пришёл сдать работу, сказали нормализовать
А сейчас структура поменялась, следовательно запросы и способ отображения данных надо изменить.

вот у меня возникли вопросы
как сделать запрос на вывод данных в 2 dbgrida? т.е. в первом дата встречи и инфа о студенте, а во втором соотетствующие этому студенту записи из таблицы родители.
мне представляется это так:
dbGrid1.dgRowSelect:=true;
событие onCellClick в 1 гриде, на этом щелчке процедура которая выбирает ids выбранной строки и находит соответствующие записи из parents и показывает их во 2 гриде, вот только я не знаю как реализовать этот выбор ids из выбранной строки
0
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
27.12.2011, 17:14 6
Цитата Сообщение от Sheepz Посмотреть сообщение
я не знаю как реализовать этот выбор ids из выбранной строки
Delphi
1
=Adoquery.FieldByName('ids').AsInteger
0
8 / 8 / 1
Регистрация: 01.04.2011
Сообщений: 88
27.12.2011, 17:43  [ТС] 7
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
Delphi
1
=Adoquery.FieldByName('ids').AsInteger
получилось) спасибо
0
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
27.12.2011, 17:57 8
Один дата сет это выборка из таблиц встреча и студенты.
А второй это выборка из таблицы родители.
Связываются как мастер и детаил.
0
8 / 8 / 1
Регистрация: 01.04.2011
Сообщений: 88
28.12.2011, 20:14  [ТС] 9
ещё вопрос
Для добавления новых записей на форме поставил dbedit для каждого поля.
Добавил кнопки "добавить" (student.insert, parents.insert, visit.insert) и "запись" (student.post, parents.post, visit.post).

Мне нужно, чтобы при нажатии на кнопку "запись", сначала в поле(числовое) ids таблицы parents записывалось значение поля(счётчика) id таблицы student
ну типа
Delphi
1
2
3
4
dbedit6.text:=dbedit1.text;
student.post; 
parents.post; 
visit.post;
тут dbedit6 это поле ids таблицы parents, а dbedit1 поле id таблицы student

Но при нажатии на кнопку добавить, в поле dbedit1 ничего нет, разве счётчик не должен был показать номер новой записи?

Добавлено через 11 минут
хотя в самом делфи проекте все данные показываются, в том числе и счётчики
0
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
29.12.2011, 03:27 10
Вот мне интересно как вы понимаете момент появления значения вашего id?
0
8 / 8 / 1
Регистрация: 01.04.2011
Сообщений: 88
29.12.2011, 11:49  [ТС] 11
ну я вставляю новую запись, и в dbedit1 появляется id новой записи...
к примеру, когда в access добавляешь новую запись, счётчик автоматически появляется в новой строке
0
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
29.12.2011, 11:58 12
Ну вот как вам сказать. Аксес, поле счетчик вычисляется и подставляется сначала для вида(резервируется), а потом когда вы сохраняете применяется. И то что-то вот в голове сомнения появились. Что так а не вставляем счетчик и сохраняем, а потом редактируем запись.
В вашем случае вы можете либо вычислить счетчик путем получения счетчика последней записи и увеличения на 1.
Либо вставить запись и потом получить ее id.
1
8 / 8 / 1
Регистрация: 01.04.2011
Сообщений: 88
29.12.2011, 12:32  [ТС] 13
а вот оно как в аксесе то... ну ладно, сделал через +1, спасибо
0
29.12.2011, 12:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2011, 12:32
Помогаю со студенческими работами здесь

Нормализация таблиц
Здравствуйте. Делаю задание по Базам данных. Суть в следующем - есть турфирма, имеется 9 таблиц....

Нормализация таблиц
Здравствуйте. Не могу до конца разобраться с нормализацией данных, поэтому прошу помощи. Таблица...

Нормализация таблиц, 1НФ
Я нормализую последовательно большую таблицу. Скажите, в 1НФ ключ должен ли идентифицировать каждый...

нормализация таблиц, аренда квартир
Расскажите хотя-бы примерно как решить следующие задачи в Access. Время сдачи очень близко, прошу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru