Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте , можете посмотреть правильно ли я сделал ER диаграмму вплане ключей, да и таблиц
http://s45.radikal.ru/i110/1004/99/31cf075649f6.png
Неактивен
Какие цели ставились? Почему нет меню? Без него не очень спортивно. Почему все таблицы соединяются напрямую, а страницы через relation?
Неактивен
В смысле нету меню?
Таблицы:
page - в таблице хранятся страницы всех сайтов и уровень страницы относительно домена
site - хранятся данные о сайтах
relation - устанавливается связь между сайтом и страницей.
ftp - данные об фтп
sape - аккаунты sape
theme - темы сайтов
domain - Домены
Если можно как-то красивее организовать таблицы с радостью выслушаю
Вот так правильнее будет?
http://s57.radikal.ru/i155/1004/61/6d5a71b811e2.png
P.S> Посоветуйте IDE где можно рисовать ER диаграммы
Неактивен
Диаграмма может быть абсолютно любой, если не ставятся какие-то требования на итоговый продукт. Без таблицы relation стало яснее, так как она не нужна для связи один ко многому.
Структура нереалистична, так как отсутствует иерархия страниц. Уровень у них есть, а подчиненности нет. Вот, например, такая конструкция http://webew.ru/articles/2080.webew
P.S. вроде для eclipse есть такой плагин, но сам не пользовался
Неактивен
Спасибо не заметил!
Подскажите пожалуйста какой вариант лучше реализовывать:
1. http://s49.radikal.ru/i123/1004/53/6d506bea1d58.png
2. http://s39.radikal.ru/i085/1004/f4/6008346d7681.png
Чтобы запросами было удобнее выбирать ну и вставлять
Неактивен
Первый вариант практичнее, чем меньше JOIN тем лучше. Но у Вас теперь не нормальная форма БД, так как поле level избыточно. Тест на нормальность здесь очень простой: можно ли записать в базу некорректную информацию? Можно: например, parent_id = 0, level = 20.
Это не значит, что на практике level не должно быть - избыточные поля используются часто, но надо понимать, что это уже денормализация. По хорошему нужно рисовать сначала диаграмму в нормальной форме, потом ее денормализовать, а потом внедрять в практику (обычно на последнем этапе избавляются и от внешних ключей).
Если это реальный проект, то в нем конечно не хватает информации о реальности. Например для страницы маловато параметров. Нет keywords, description, pagetitle, url. Нет флага включать или не включать страницу в robots.txt (такое тоже возможно потребуется). Но на самом деле это не страшно, так как при реализации таблица сама расширится.
Неактивен
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 и т.д.
И спасибо большое что помогаете .
Неактивен
И как вы посоветуете может лучше counter,domain запихнуть в таблицу sites? там все ровно связь 1:1
Неактивен
Конечно Вы привели несколько упрощенную схему формирования главной страницы. Попробуйте найти реальный сайт в интернете, который удослетворяет такой схеме. И помните, что у реального сайта есть заказчик, а ему плевать какая у Вас структура БД - он может что-то захотеть поместить на главную и другие страницы.
Счетчиков может быть несколько и доменов тоже.
Про JOIN и FOREIGN KEY проще всего читать документацию.
Неактивен
Конечно Вы привели несколько упрощенную схему формирования главной страницы - сайты которые будет создавать данный генератор , не для людей. А для привлечение трафика , можно будет использовать для дорвеев.
Счетчик и домен в 1 экземпляре будут - это 100% .
Ну с ФК я понял что это типо поля которые являются ключевыми в другой таблице.
про JOIN тяжко .
Неактивен
Вы романтик. Сделать таким способом дорвеи, да еще и sape с них продавать. Я пожалуй не буду комментировать почему эта схема не отображает предметной области дорвеестроения. Советую посетить конференцию Highload++ и посмотреть какой уровень специалистов по базам данных и по алгоритмам среди сотрудников Яндекса. Сможете ли вы их объехать на столь кривой козе?
Неактивен
rgbeast - я не говорю что это будет работать Просто в функциональность курсового это входит Я не SEOшник.
Я просто студент который проходит квест "сделай курсовой за 2 дня"
Неактивен
То есть задача на курсовую сделать базу для генератора дорвеев? Интересно
Неактивен
ну термин дорвей там нету
"Генератор оптимизированных сайтов"
Вот финальный вариант оцените пожалуйста:
http://s60.radikal.ru/i168/1004/8f/14472f6db506.png
И прикрепил SQL файлик создание таблиц.
Отредактированно like2dev (27.04.2010 13:48:19)
Неактивен
Оценить сможет только тот, кто давал задание. Я ведь не знаю в чем он заключалось. Я не знаю какой уровень курсовой требуется. Может быть большинство берет сайт на готовом движке, делает дамп структуры базы, а потом на сдаче пытается рассказать зачем там в каждой таблице десятки каких-то полей. В этом смысле у Вас преимущество - очевидно делали сами, можете объяснить, лишнего непонятного нет. С другой стороны, кажется, что тема не раскрыта. Практически отсутствуют понятия из предметной области. Нигде нет ключевых слов, по которым должен генерироваться контент, тематик сайтов, статистики запросов Яндекс по данным ключевым словам, таблицы для учета собственной статистики посещений (например, так http://webew.ru/articles/748.webew ), нет времени создания на страницах. Не демонстрируется мощь базы - из структуры неясно зачем вообще в таком виде хранить - почему не HTML чистый (что часто практикуется в выбранной предметной области).
Неактивен
Ознакомиться с внешними ключами можно на русском языке FAQ п4
А по поводу JOIN могу посоветовать только документацию http://dev.mysql.com/doc/refman/5.1/en/join.html
Неактивен