SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.04.2010 06:59:32

like2dev
Участник
Зарегистрирован: 27.04.2010
Сообщений: 18

ER Диаграмма

Здравствуйте , можете посмотреть правильно ли я сделал ER диаграмму вплане ключей, да и таблиц

http://s45.radikal.ru/i110/1004/99/31cf075649f6.png

Неактивен

 

#2 27.04.2010 07:25:54

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: ER Диаграмма

Какие цели ставились? Почему нет меню? Без него не очень спортивно. Почему все таблицы соединяются напрямую, а страницы через relation?

Неактивен

 

#3 27.04.2010 07:37:33

like2dev
Участник
Зарегистрирован: 27.04.2010
Сообщений: 18

Re: ER Диаграмма

В смысле нету меню?

Таблицы:
page - в таблице хранятся страницы всех сайтов и уровень страницы относительно домена
site - хранятся данные о сайтах
relation - устанавливается связь между сайтом и страницей.
ftp - данные об фтп
sape - аккаунты sape
theme - темы сайтов
domain - Домены

Если можно как-то красивее организовать таблицы с радостью выслушаю

Вот так правильнее будет?
http://s57.radikal.ru/i155/1004/61/6d5a71b811e2.png

P.S> Посоветуйте IDE где можно рисовать ER диаграммы

Неактивен

 

#4 27.04.2010 07:49:45

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: ER Диаграмма

Диаграмма может быть абсолютно любой, если не ставятся какие-то требования на итоговый продукт. Без таблицы relation стало яснее, так как она не нужна для связи один ко многому.

Структура нереалистична, так как отсутствует иерархия страниц. Уровень у них есть, а подчиненности нет. Вот, например, такая конструкция http://webew.ru/articles/2080.webew

P.S. вроде для eclipse есть такой плагин, но сам не пользовался

Неактивен

 

#5 27.04.2010 08:38:17

like2dev
Участник
Зарегистрирован: 27.04.2010
Сообщений: 18

Re: ER Диаграмма

Спасибо не заметил!
Подскажите пожалуйста какой вариант лучше реализовывать:

1. http://s49.radikal.ru/i123/1004/53/6d506bea1d58.png
2. http://s39.radikal.ru/i085/1004/f4/6008346d7681.png

Чтобы запросами было удобнее выбирать ну и вставлять

Неактивен

 

#6 27.04.2010 09:35:10

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: ER Диаграмма

Первый вариант практичнее, чем меньше JOIN тем лучше. Но у Вас теперь не нормальная форма БД, так как поле level избыточно. Тест на нормальность здесь очень простой: можно ли записать в базу некорректную информацию? Можно: например, parent_id = 0, level = 20.

Это не значит, что на практике level не должно быть - избыточные поля используются часто, но надо понимать, что это уже денормализация. По хорошему нужно рисовать сначала диаграмму в нормальной форме, потом ее денормализовать, а потом внедрять в практику (обычно на последнем этапе избавляются и от внешних ключей).

Если это реальный проект, то в нем конечно не хватает информации о реальности. Например для страницы маловато параметров. Нет keywords, description, pagetitle, url. Нет флага включать или не включать страницу в robots.txt (такое тоже возможно потребуется). Но на самом деле это не страшно, так как при реализации таблица сама расширится.

Неактивен

 

#7 27.04.2010 09:48:42

like2dev
Участник
Зарегистрирован: 27.04.2010
Сообщений: 18

Re: ER Диаграмма

level = 20 - поле Level типа - enum('1','2','3').
Проект - это курсовой по ООП(просто подумал что в будущем курсовой сможет иметь практичное применение) .
level - на самом деле избыточное поле.
Т.к.

Если parent_id = 0 level = 2
Иначе level = 3
level = 1 - это гл. страница. Но она статическая формируется так:
<h1>Название сайта</h1>
Циклом выбирается все стр. 2го уровня и идет
{
<h2>Имя страницы второго уровня</h2>
<p>Один абзац страницы второго уровня</p>
}
Вот так формируется гл. страница .
Поэтому я думаю можно откинуть поле level. И тогда будет все хорошо?

P.S> Нету ли у вас случайно ссылки где хорошо описываются работа с Foreign Key и с JOIN и т.д. А то я mysql Знаю на уровне легких операций : вставки,выборки,обновления - без дополнительных параметров типо INNER JOIN и т.д.

И спасибо большое что помогаете .

Неактивен

 

#8 27.04.2010 10:05:09

like2dev
Участник
Зарегистрирован: 27.04.2010
Сообщений: 18

Re: ER Диаграмма

И как вы посоветуете может лучше counter,domain запихнуть в таблицу sites? там все ровно связь 1:1

Неактивен

 

#9 27.04.2010 10:32:11

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: ER Диаграмма

Конечно Вы привели несколько упрощенную схему формирования главной страницы. Попробуйте найти реальный сайт в интернете, который удослетворяет такой схеме. И помните, что у реального сайта есть заказчик, а ему плевать какая у Вас структура БД - он может что-то захотеть поместить на главную и другие страницы.

Счетчиков может быть несколько и доменов тоже.

Про JOIN и FOREIGN KEY проще всего читать документацию.

Неактивен

 

#10 27.04.2010 10:46:48

like2dev
Участник
Зарегистрирован: 27.04.2010
Сообщений: 18

Re: ER Диаграмма

Конечно Вы привели несколько упрощенную схему формирования главной страницы - сайты которые будет создавать данный генератор , не для людей. А для привлечение трафика , можно будет использовать для дорвеев.
Счетчик и домен в 1 экземпляре будут - это 100% .
Ну с ФК я понял что это типо поля которые являются ключевыми в другой таблице.
про JOIN тяжко .

Неактивен

 

#11 27.04.2010 11:13:46

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: ER Диаграмма

Вы романтик. Сделать таким способом дорвеи, да еще и sape с них продавать. Я пожалуй не буду комментировать почему эта схема не отображает предметной области дорвеестроения. Советую посетить конференцию Highload++ и посмотреть какой уровень специалистов по базам данных и по алгоритмам среди сотрудников Яндекса. Сможете ли вы их объехать на столь кривой козе?

Неактивен

 

#12 27.04.2010 12:06:50

like2dev
Участник
Зарегистрирован: 27.04.2010
Сообщений: 18

Re: ER Диаграмма

rgbeast - я не говорю что это будет работатьsmile Просто в функциональность курсового это входитsmile Я не SEOшник.
Я просто студент который проходит квест "сделай курсовой за 2 дня"smile

Неактивен

 

#13 27.04.2010 12:08:07

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: ER Диаграмма

То есть задача на курсовую сделать базу для генератора дорвеев? Интересно smile

Неактивен

 

#14 27.04.2010 12:36:19

like2dev
Участник
Зарегистрирован: 27.04.2010
Сообщений: 18

Re: ER Диаграмма

ну термин дорвей там нетуsmile
"Генератор оптимизированных сайтов"
Вот финальный вариант оцените пожалуйста:

http://s60.radikal.ru/i168/1004/8f/14472f6db506.png

И прикрепил SQL файлик создание таблиц.

Отредактированно like2dev (27.04.2010 13:48:19)


Прикрепленные файлы:
Attachment Icon data.sql, Размер: 2,283 байт, Скачано: 1,005

Неактивен

 

#15 27.04.2010 18:15:45

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: ER Диаграмма

Оценить сможет только тот, кто давал задание. Я ведь не знаю в чем он заключалось. Я не знаю какой уровень курсовой требуется. Может быть большинство берет сайт на готовом движке, делает дамп структуры базы, а потом на сдаче пытается рассказать зачем там в каждой таблице десятки каких-то полей. В этом смысле у Вас преимущество - очевидно делали сами, можете объяснить, лишнего непонятного нет. С другой стороны, кажется, что тема не раскрыта. Практически отсутствуют понятия из предметной области. Нигде нет ключевых слов, по которым должен генерироваться контент, тематик сайтов, статистики запросов Яндекс по данным ключевым словам, таблицы для учета собственной статистики посещений (например, так http://webew.ru/articles/748.webew ), нет времени создания на страницах. Не демонстрируется мощь базы - из структуры неясно зачем вообще в таком виде хранить - почему не HTML чистый (что часто практикуется в выбранной предметной области).

Неактивен

 

#16 27.04.2010 20:09:59

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: ER Диаграмма

Ознакомиться с внешними ключами можно на русском языке FAQ п4

А по поводу JOIN могу посоветовать только документацию http://dev.mysql.com/doc/refman/5.1/en/join.html

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson