Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2010, 17:27   #31
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Сменил схему, но столкнулся с любопытным моментом. Если воспитанник ходит на несколько кружков, то придётся делать еще одну запись верно? Т.е. почти всё будет одинаково, кроме названия секции. Т.е. тем самым схема данных не дает шанс совпадениям, даже если применить код воспитанника или привязать таблицу через родителя...Интересно, кто как поступил на этом этапе разработки бд.
2badboychik. найс схема
Всё гениальное - просто!

Последний раз редактировалось .Phoenix; 09.08.2010 в 17:44.
.Phoenix вне форума Ответить с цитированием
Старый 09.08.2010, 18:52   #32
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Ну народ, вы жгёте ) вот правильная схема, щас запросы нарисую
Жжети Как раз Вы. Зачем разделять Школу, Класс и ПОЛ!? это связи один-к-одному, т.е. фактически одна таблица разбитая на две
Я это пишу не потому что мне на понравилась Ваша структура, она вполне нормальная, за исключением несколько моментов, а потому что у меня уже есть некоторый опыт по проектированию БД. Опыт пусть небольшой но все же есть. На некоторые грабли уже наступал.

Цитата:
Сменил схему, но столкнулся с любопытным моментом. Если воспитанник ходит на несколько кружков, то придётся делать еще одну запись верно? Т.е. почти всё будет одинаково, кроме названия секции. Т.е. тем самым схема данных не дает шанс совпадениям, даже если применить код воспитанника или привязать таблицу через родителя...Интересно, кто как поступил на этом этапе разработки бд.
Для этого используются связь многое-ко-многим. Настоятельно рекомендую почитать эту книгу.

Цитата:
но будут ли работать запросы из – за которых началась вся заварушка
Да, запросы работать будут! Они не сложные, бывали и по сложнее
psycho-coder вне форума Ответить с цитированием
Старый 09.08.2010, 19:11   #33
badboychik
Пользователь
 
Регистрация: 08.08.2010
Сообщений: 21
По умолчанию

Цитата:
Зачем разделять Школу, Класс и ПОЛ!? это связи один-к-одному, т.е. фактически одна таблица разбитая на две
Как это одна? Список школ в своей таблице, список классов в своей. С какой стати это одна таблица? А связываются эти данные с таблицей "Ученики". Что то вы путаете
Цитата:
Для этого используются связь многое-ко-многим
В базе ни в коем случае не должно быть связей "многие-ко-многим". Если при проектировании они появляются, вводят еще одну таблицу и разбивают связь на две "один-ко-многим". Надо бы знать.

Цитата:
Трудность возникла при подсчете количества секций посещаемых одним ребенком. А также как составить запрос: сколько детей посещают определенное количество секций.
Ну на скриншоте я специально привел такой отчет - видно сколько детей ходят в одну секцию, сколько сразу в две... Вам надо знать какие секции посещает только один ребенок что ли? Лучше приведите сразу все запросы которые нужны (можно за исключением тех что на скриншоте сделаны - по школам, классам и т.д.)

Кстати про родителей и руководителей я не делал, только исправил ту схему что была. Там вообще был ужас, извините конечно. Могу добавить если надо родителей и все такое. Только сформулируйте все требования в одном месте и поконкретнее

Последний раз редактировалось Stilet; 10.08.2010 в 13:03.
badboychik вне форума Ответить с цитированием
Старый 09.08.2010, 20:09   #34
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Немного переделал, как такая версия?
Изображения
Тип файла: jpg 1.jpg (72.4 Кб, 136 просмотров)
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 09.08.2010, 20:49   #35
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Как это одна? Список школ в своей таблице, список классов в своей. С какой стати это одна таблица? А связываются эти данные с таблицей "Ученики". Что то вы путаете
Хм.. Может быть. Но Пол то нафига выносить в отдельную таблицу? Разве булевого поля недостаточно?

Цитата:
В базе ни в коем случае не должно быть связей "многие-ко-многим"
Это как раз Вам следует знать что: реляционная модель не поддерживает связь многие-ко-многим! И то что нужно разделять такие таблицы я знаю. Эта связь абстрактная модель, простое выражение, дающее людям понять структуру БД. Если бы Вы присмотрелись повнимательней в мой скрипт на SQL и мою схему данных, то могли бы увидеть что там это реализовано.

Ладно хватит холиварить. Я тогда отключаюсь от темы. Тут и без меня есть двое разработчиков.

Желаю хорошо все закончить! Удачи вам badboychik, .Pheonix
psycho-coder вне форума Ответить с цитированием
Старый 09.08.2010, 21:49   #36
badboychik
Пользователь
 
Регистрация: 08.08.2010
Сообщений: 21
По умолчанию

.Phoenix, в схеме неправильная связь "Воспитанники - Родители". Во первых она должна быть направлена наоборот, во вторых где поле КОД в таблице родителей?
Еще - связь один-к-одному между воспитанниками и некой "основной таблицей" не нужна, там должна быть 1-к-многим. Один воспитанник может ходить в несколько секций

А если делать вместо пола булевы значения, потом придется везде преобразовывать 0 в "м", 1 в "ж" например

Еще меня смущает поле "Год обучения" в основной таблице. Нельзя напрямую ставить цифру в таблицу, иначе придется каждый год у всех строк ее менять. Нужно в запросах вычитать разницу между 1 сентября текущего года и года поступления и прибавлять единицу.

Последний раз редактировалось badboychik; 10.08.2010 в 00:00.
badboychik вне форума Ответить с цитированием
Старый 10.08.2010, 12:38   #37
saya771
Пользователь
 
Регистрация: 05.08.2010
Сообщений: 14
По умолчанию

.Phoenix в таблице воспитаники есть поля поступил и закончил, но в разных секциях у него может быть разный год обучения.

Последний раз редактировалось saya771; 10.08.2010 в 12:41.
saya771 вне форума Ответить с цитированием
Старый 10.08.2010, 12:52   #38
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

saya771 если я правильно понял, то в одну секцию он мог поступить, например, в 2008, а в другую 2009, но закончить обе в 2010. Я правильно понял?
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 10.08.2010, 13:02   #39
saya771
Пользователь
 
Регистрация: 05.08.2010
Сообщений: 14
По умолчанию

.Phoenix правильно, а может одну секцию закончить, а во вторую ходить 9 лет. И за это время ещё побывать в нескольких секциях, а выпускником быть только одной секции, то есть пройти курс обучения от начало до конца.

Последний раз редактировалось saya771; 10.08.2010 в 13:06.
saya771 вне форума Ответить с цитированием
Старый 10.08.2010, 15:00   #40
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

saya771 Понял
Скинул скрин.
Изображения
Тип файла: jpg Untitled-1.jpg (71.8 Кб, 153 просмотров)
Всё гениальное - просто!

Последний раз редактировалось .Phoenix; 10.08.2010 в 15:19.
.Phoenix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль - Распечатать фамилии детей данного детского сада,которые родились в определенном месяце Оксана Логачёва Паскаль, Turbo Pascal, PascalABC.NET 1 29.05.2010 06:11
Разработка Базы Данных для Детского лагеря Voyts Фриланс 1 05.12.2008 10:22
Разработка Базы Данных для Детского лагеря Voyts Фриланс 3 11.02.2008 19:10