Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оцените, пожалуйста, насколько грамотно спроектирована БД / 14 сообщений из 14, страница 1 из 1
04.08.2010, 01:13
    #36774126
Chvanikoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Всем доброго времени суток!
Я не разработчик БД, но порой приходится одевать сию шкуру... Вот сегодня у меня как раз тот случай. В общем, мне крайне интересно было бы узнать, насколько хорошо/плохо я справился с заданием:
На сайте есть курсы, есть отдельные уроки.
Каждый курс/урок принадлежит какой-то категории (для курсов и уроков категории могут быть разные), вложенность категорий не ограничена
Урок может быть частью курса

И вот, собственно, что я сделал - http://pastebin.org/446390 (на всякий случай файл в аттаче)

Заранее благодарен за все комментарии и извиняюсь, если не в тот раздел написал - мне кажется, что это все же больше подходит к "Проектированию БД", чем к абстрактному "MySQL"
...
Рейтинг: 0 / 0
04.08.2010, 02:10
    #36774144
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Chvanikoff, было бы лучше представить схему. Так быстрее разобраться, да и вам полезнее.
...
Рейтинг: 0 / 0
04.08.2010, 02:13
    #36774146
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Rin@tChvanikoff, было бы лучше представить схему. Так быстрее разобраться, да и вам полезнее.И хотя бы краткое описание таблиц.
...
Рейтинг: 0 / 0
04.08.2010, 02:15
    #36774149
Chvanikoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Без проблем...

http://i054.radikal.ru/1008/9d/fca997b3e829.jpg
...
Рейтинг: 0 / 0
04.08.2010, 02:22
    #36774151
Chvanikoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Описание таблиц

Cources:
-id
-name - название курса
-author - автор курса
-description - описание курса
-category - id категории из cources_categories

Cources_Categories:
-id
-parent - id категории-родителя. NULL, если выше этой категории ничего нет
-name - название категории
-description - описание категории

Lessons:
-id
-name - название урока
-content - содержание урока
-author - автор урока
-description - описание урока
-category - id категории из lessons_categories

Lessons_Categories:
-id
-parent - id категории-родителя. NULL, если выше этой категории ничего нет
-name - название категории
-description - описание категории

Lessons_Cources - описывает принадлежность того или иного урока к курсу, если id урока здесь нет, то он самостоятельный:
-lesson_id
-cource_id
...
Рейтинг: 0 / 0
04.08.2010, 10:27
    #36774439
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Я не знаком с этим средством пректирования,
но предполагаю, что у таблицы Cources_Categories должна быть линия,
изображающая связь таблицы с самой собой (поле parent)
...
Рейтинг: 0 / 0
04.08.2010, 10:48
    #36774493
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
ChvanikoffОписание таблиц

Cources:
-id
-name - название курса
-author - автор курса
-description - описание курса
-category - id категории из cources_categories

Cources_Categories:
-id
-parent - id категории-родителя. NULL, если выше этой категории ничего нет
-name - название категории
-description - описание категории

Lessons:
-id
-name - название урока
-content - содержание урока
-author - автор урока
-description - описание урока
-category - id категории из lessons_categories

Lessons_Categories:
-id
-parent - id категории-родителя. NULL, если выше этой категории ничего нет
-name - название категории
-description - описание категории

Lessons_Cources - описывает принадлежность того или иного урока к курсу, если id урока здесь нет, то он самостоятельный:
-lesson_id
-cource_id

1. Таблицы именовать не в множественном числе (Lessons -> Lesson)
2. Lessons_Categories и Cources_Categories объединить в одну таблицу с полем Type, тип int (1 - категории уроков, 2 - категории курсов)
3. Cources.author и Lessons.author нарушают нормализацию БД, надо сделать отдельную таблицу авторов (Author) с полями например id, f, i, o, а в таблицах Cources и Lessons давать ссылку на автора из таблицы Author
...
Рейтинг: 0 / 0
04.08.2010, 10:52
    #36774508
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
17-772. Lessons_Categories и Cources_Categories объединить в одну таблицу с полем Type, тип int (1 - категории уроков, 2 - категории курсов)Сейчас уроки могут ссылаться только на категории уроков, но не на категории курсов
Если автор примет Вашу рекомендацию №2, то уроки смогут ссылаться на категории курсов
Считаю это неверным
...
Рейтинг: 0 / 0
04.08.2010, 10:52
    #36774511
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
ПаганельЯ не знаком с этим средством пректирования,
но предполагаю, что у таблицы Cources_Categories должна быть линия,
изображающая связь таблицы с самой собой (поле parent)
Не обязательно, отношение в Parent - Childs может дать сбой при удалении (типа удалите сначала другие строки, который ссылаются на эту) - придется дописывать руками код, чтобы корректно все удаляла, если не создавать связь - то в какой-то мере по логике это нарушит целостность БД, но в данном случае это не страшно - все равно все оставшиеся элементы будут отображены в экранной форме справочника, просто они будут не в группе или как то еще по другому.
...
Рейтинг: 0 / 0
04.08.2010, 10:55
    #36774517
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Паганель
Если автор примет Вашу рекомендацию №2, то уроки смогут ссылаться на категории курсов
Считаю это неверным
1. Это можно ограничить в интерфейсе
2. Это можно ограничить введением в связь составного идентификатора - ИД записи из справочника и ее тип
3. А можно забить на это

Минусы двух таблиц: если придется вносить изменения - их придется вносить два раза, для каждой таблицы, а потом в каждую программу, которая использует эту БД и везде тоже по два раза, стоимость сопровождения и доработки такой БД и программ увеличивается
...
Рейтинг: 0 / 0
04.08.2010, 10:56
    #36774518
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Chvanikoff Lessons_Cources - описывает принадлежность того или иного урока к курсу, если id урока здесь нет, то он самостоятельный:
-lesson_id
-cource_idЕсли судить по схеме, связь между Lessons и Cources "многое-ко-многим". Если не секрет, это реальная база?
...
Рейтинг: 0 / 0
04.08.2010, 11:00
    #36774534
17-77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Rin@tЕсли судить по схеме, связь между Lessons и Cources "многое-ко-многим". Если не секрет, это реальная база?
Могу предположить что нет, что-то вроде курсовой
...
Рейтинг: 0 / 0
04.08.2010, 12:19
    #36774755
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
17-77придется дописывать руками код, чтобы корректно все удалялаЭто решать автору
Возможно, надо не удалять, а переназначать родителя
В таком случае без дописывания руками имхо не обойтись

17-77если не создавать связь - то в какой-то мере по логике это нарушит целостность БД, но в данном случае это не страшнопока не попытаемся получить родителя по несуществующему id

17-77Минусы двух таблиц: если придется вносить изменения - их придется вносить два разаА если вносить изменения не придется,
или придется вносить изменения,
касающиеся категорий только одного типа,
то минусов у двух таблиц нет


17-77Паганель
Если автор примет Вашу рекомендацию №2, то уроки смогут ссылаться на категории курсов
Считаю это неверным
1. Это можно ограничить в интерфейсе
2. Это можно ограничить введением в связь составного идентификатора - ИД записи из справочника и ее тип
3. А можно забить на это
Вариант 1 - не верю я в обещания разработчиков интерфейса типа "у нас все под контролем"
Вариант 2 - можно, но опять же автору решать
Вариант 3 - даже не знаю что сказать...
...
Рейтинг: 0 / 0
04.08.2010, 12:38
    #36774825
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените, пожалуйста, насколько грамотно спроектирована БД
Всё дело в таких вопросах всегда упирается в постановку задачи.
У тебя в вопросе про неё практически ни слова не сказано.
Обсуждать что-либо в таких условиях бессмысленно.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оцените, пожалуйста, насколько грамотно спроектирована БД / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]