powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База для сайта #3
26 сообщений из 26, показаны все 2 страниц
База для сайта #3
    #36745988
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Исходя из этого обсуждения ( База для сайта #2 ) переделал архитектуру таким образом (смотрите вложение)
Скажите правильно или я допустил ошибки...

так же прошу с акцентировать внимание на на типах данных и индексах - ограничениях

Спасибо!
...
Рейтинг: 0 / 0
База для сайта #3
    #36746001
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смени ник. С шизиком разговор опять не будет получаться
...
Рейтинг: 0 / 0
База для сайта #3
    #36746002
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

та тут все вроде просто и правильно, так что диалог будет конструктивным )
...
Рейтинг: 0 / 0
База для сайта #3
    #36746005
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophreniciscrafm,

та тут все вроде просто и правильно, так что диалог будет конструктивным )
не могу отвечать за остальных, но серьезно общаться с человеком, который дает себе погоняло "шизофреник", лично мне не доставляет удовольствия. Разве что похохмить.
...
Рейтинг: 0 / 0
База для сайта #3
    #36746008
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

сублимируй
...
Рейтинг: 0 / 0
База для сайта #3
    #36746009
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так что по теме? есть ошибки?
...
Рейтинг: 0 / 0
База для сайта #3
    #36746015
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophrenic, вот вы так ратуете за 3НФ. Так разъясните, каким образом нарушится 3НФ, если вместо id_date и связанной таблицы дат поставить просто поле "dt" типа date.
Только, пожалуйста, при доказательстве не опирайтесь на аргументы типа "ну это же очевидно, что моя схема самая 3НФ-ная!", а логически выведите это из определения 3НФ.
...
Рейтинг: 0 / 0
База для сайта #3
    #36746039
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

Извиняюсь! Забыл переименовать, внешних ключей всего пять (на пять таблиц)
...
Рейтинг: 0 / 0
База для сайта #3
    #36746129
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophrenic,

все по-прежнему плохо:
1. Связь между Keywords и Documents является "многие-ко-многим", а у вас "один-ко-многим".
2. Отношение между Bodys (кстати, правильно Bodies) и Documents - какое? У одного документа может быть одно "тело". Если не так, то что означает несколько "тел" у "документа"?
3. Поскольку ID_Created убрали со схемы, то на примере отношения Titles <-> Documents. Допустим созданы 2 документа с названием "Фигня". Одна запись в таблице Titles и 2 ссылки в таблице Documents. Потом оказывается, что когда заносили, то просто не знали как назвать, и у первого документа заголовок должен быть "Смета". Что делать? Если поменять строку в Titles, то получится, что и второй документ начнет называться "Смета", что неправильно.
...
Рейтинг: 0 / 0
База для сайта #3
    #36746163
Lemegeton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стало гораздо удобнее.

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

Вынос поля с полным текстом по связи один-к-одному в отдельную таблицу -- обычное дело для систем с очень большим количеством записей. Несколько неудобно, но решабельно без процедур, одной логикой сайта.

Вы уверены в выносе Title и Description? Судя по тому, что это, все-таки, сайт, и с поисковой системой он дружить должен, значения этих полей будут весьма редко повторяться... Чуть менее, чем никогда. Стоит ли тратить на них два джоина при выборке или два инсерта при добавлении или ацкий гемор с процедурами?! Скорости не добавит. Можно проверить рыбой.

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

айди_аутоинкремент_для_уникальности айди_страницы ключевое слово1 1 главная2 1 тема сайта

Индексы будут меняться по ходу изобретения запросов к базе. Сейчас не имеет смысла их обсуждать. Популярные индексы у вас выставлены.

По типам данных. DATE лучше поменять на TIMESTAMP, размеры VARCHAR на вашей совести, интеджеры ОК, энумы - непонятно.

Внешние ключи -- надо бы посмотреть подробней ДДЛ. Я бы не стал на удаление авторов делать каскад. Скорее NULL. А вот на апдейт каскад.

Там у авторов я видел группы, наверно это айдишник группы и связанная таблица с группами должна присутствовать?
...
Рейтинг: 0 / 0
База для сайта #3
    #36746590
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне интересно, какую смысловую нагрузку вы возлагаете на поля name,title и description
name - название статьи, это понятно
titile - тоже вроде как название, заголовок
description - краткое описание, как правило небольшой кусочек текста, из начала статьи

мне кажется name и title дублируют друг друга, одно из них лишнее. если назначение разное - поясните

ключевые слова - мне тоже видится, для них отдельный "справочник", и через доп таблицу связь многие ко многим, так как к статье их явно будет несколько
keywords(k_id,k_word);
ref_keywords_documents(id,k_id,docunemt_id);
таким образом будет удобно, выбрав ключевое слово, получить список статей с которым оно связанно
...
Рейтинг: 0 / 0
База для сайта #3
    #36746643
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кифирчик,

name - это URL страницы на латинице;
title - это заголовок страницы <TITLE>Моя первая страница</TITLE> так что связи тут нет;
description - до спецификации до ста символов, не вижу смыла тягать из при работе скажем с автором или деревьями,
поэтому и вынес в отдельную таблицу;
body - ну тут все понятно BLOB так же как и description тягать глупо;
keywords - с отдельным справочником... хм... это ключевые слова отдельного документа, создавать такой справочник
на мой взгляд неправильно, я же не знаю что будет описывать автор, а коллекционировать кучу возможно схожих
а возможно и нет, слов.. наверное неправильно

предварительный поиск будет бегать по description и title
расширенный по body , keywords , title , date , author
...
Рейтинг: 0 / 0
База для сайта #3
    #36746651
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophrenic name - это URL страницы на латинице;что мешает тогда назвать его url, зачем нужен этот name, врагов запутать? ;-))
...
Рейтинг: 0 / 0
База для сайта #3
    #36746659
Фотография Rin@t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophrenic
keywords - с отдельным справочником... хм... это ключевые слова отдельного документа, создавать такой справочник
на мой взгляд неправильно, я же не знаю что будет описывать автор ,
Это проблема автора, а не разработчика.
schizophrenic
а коллекционировать кучу возможно схожих
а возможно и нет, слов.. наверное неправильно
Это всё от вашего непонимания проблемы. Глупо считать: один документ - одно ключевое слово.
...
Рейтинг: 0 / 0
База для сайта #3
    #36746661
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychschizophrenic name - это URL страницы на латинице;что мешает тогда назвать его url, зачем нужен этот name, врагов запутать? ;-))не понял Вас:

Name будет типа:

Код: plaintext
1.
2.
3.
4.
5.
About
Help
FAQ
News
New1
New2

что означает:

Код: plaintext
1.
2.
3.
4.
5.
http://www.example.com/About.html
http://www.example.com/Help.html
http://www.example.com/Help/FAQ.html
http://www.example.com/News.html
http://www.example.com/News/New1.html
http://www.example.com/News/New2.html

то есть в таблице будет

ID PID SID Name101About202Help321FAQ403News541New1642New2

Где ID это родитель,
Где PID это указатель родителя
Где SID это положение в меню и дереве
Где Name это имя по которому разбираем дерево
...
Рейтинг: 0 / 0
База для сайта #3
    #36746662
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rin@tЭто всё от вашего непонимания проблемы. Глупо считать: один документ - одно ключевое слово.Почему одно ключевое слово?

предположим есть текст описывающий ту или иную компанию которая лет десять продает пиво,
так вот в случае с этой компанией получится строчка типа:

компания, лидер, пиво, десять лет, качество...

то есть это ключевые слова для META тега, и записываю я из одной строчкой до ста символов (в соответствии со спецификацией)

Что я не так понял?
...
Рейтинг: 0 / 0
База для сайта #3
    #36746664
Фотография Rin@t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophrenicRin@tЭто всё от вашего непонимания проблемы. Глупо считать: один документ - одно ключевое слово.Почему одно ключевое слово?

предположим есть текст описывающий ту или иную компанию которая лет десять продает пиво,
так вот в случае с этой компанией получится строчка типа:

компания, лидер, пиво, десять лет, качество...

то есть это ключевые слова для META тега, и записываю я из одной строчкой до ста символов (в соответствии со спецификацией)

Что я не так понял?Про 1НФ стоит прочитать.
...
Рейтинг: 0 / 0
База для сайта #3
    #36746667
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rin@t,

1НФ тут причем?
...
Рейтинг: 0 / 0
База для сайта #3
    #36746682
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophrenic,
ну у вас ведь может быть ещё другая статья про другую компанию, которая лидер не в пиве а в производстве сухариков, и слово "лидер" у неё тоже в keywords.
если хранить отдельным справочником - то можно каждое ключевое слово подсветить ссылкой, это как бы вариант поиска. можно выбрать список всех статей, которые как-то к "пиву" (например) относятся. автор, ключевые слова галочками выбирает, а чего нету - сам вносит, пополняя справочник.
если этого не надо, то храните все в одной строке

использование в качестве идентификатора, строку - дырочка в безопасности, отличный вариант подолбать всякими шелами. хотя конечно эта проблема решаема.

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

ещё. ваш хостер дает права хранимые процедуры делать?
...
Рейтинг: 0 / 0
База для сайта #3
    #36746728
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кифирчикиспользование в качестве идентификатора, строку - дырочка в безопасности, отличный вариант подолбать всякими шелами. хотя конечно эта проблема решаема.можно по подробнее? честно говоря я вообще не понял о чем Вы..Кифирчики смотрю, вы прямо статью с "листьями" дерева разделов связываете.
имхо дерево разделов с названиями - это одно
а статьи - это другое.
если вам надо будет в одной ветке вставить тексты двух статей? или иные вариации?
должна быть гибкость некотораяВы считаете правильнее хранить ID, SID, PID в отдельной таблице?Кифирчикещё. ваш хостер дает права хранимые процедуры делать?Разве большая часть хостеров не поддерживают работу хранимых процедур?
...
Рейтинг: 0 / 0
База для сайта #3
    #36746772
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophrenicчестно говоря я вообще не понял о чем Вы..
забудьте )))

schizophrenicКифирчики смотрю, вы прямо статью с "листьями" дерева разделов связываете.
имхо дерево разделов с названиями - это одно
а статьи - это другое.
если вам надо будет в одной ветке вставить тексты двух статей? или иные вариации?
должна быть гибкость некотораяВы считаете правильнее хранить ID, SID, PID в отдельной таблице?

я не знаю какие у вас требования
к примеру, у себя, я в дереве разделов сделал поля с "названием" и "содержанием"
в содержании, можно было и просто html ввести, а можно "внутренние ссылки", к примеру {type=art;id=24}
при отображении, в верху страницы выводится список подразделов, а чуть ниже "содержание дерева", {type=art;id=24} парсится, и вместо этого выражения выводится статья из БД id которой 24
так можно и произвольный текст ввывести, и статью, и пару статей

schizophrenicКифирчикещё. ваш хостер дает права хранимые процедуры делать?Разве большая часть хостеров не поддерживают работу хранимых процедур?
сейчас точно не знаю, но года 3 назад было проблемой.
...
Рейтинг: 0 / 0
База для сайта #3
    #36746799
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophrenic keywords - с отдельным справочником... хм... это ключевые слова отдельного документа, создавать такой справочник
на мой взгляд неправильно, я же не знаю что будет описывать автор, а коллекционировать кучу возможно схожих
а возможно и нет, слов.. наверное неправильноЭто полный абзац!
Этот человек совсем недавно хотел вынести в "справочник" просто все заносимые даты. Вынесение заголовков документов в отдельный справочник сомнений не вызывает. А тут "на мой взгляд неправильно".

ЗЫ. Расскажи-ка, где такое место работы, что можно с двумя таблицами недельку-другую ковыряться? Если не универ, то я тоже так хочу...
...
Рейтинг: 0 / 0
База для сайта #3
    #36746839
Lemegeton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
schizophrenic1НФ тут причем?
1НФ гласит, что в одном поле не может быть более одного значения. То есть, хранить несколько ключевых слов в одном поле противоречит 1НФ, следовательно, по определению, противоречит 2НФ и 3НФ.

Да. Ключевые слова разделять не очень приятно и, в одном из вариантов реализации, очень похоже на тот огород, что вы городили с таблицами, но вот это как раз то, что можно положить на алтарь с целью обеспечения функциональности и скорости, в конечном итоге. Ну и до кучи приведет к нормализации до 3НФ.

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

Н.Б. С другой стороны, конечно, если ключевые слова никогда-никогда не будут использоваться отдельно друг от друга как самостоятельные значения, а только как монолитная строка текста, забудьте обо всем вышесказанном и внесите её в документ одной строкой, потому что ваша задача диктует вам, что этот набор слов является одним значением, и, следовательно, таблица в 1НФ.

Например, если у вас в запросе бдует WHERE keyword LIKE '%футбол%', все, не первая нормальная форма. Потому что ключевое слово "футбол" используется как самостоятельное значение и таблица не в 1НФ.

Senya_LЗЫ. Расскажи-ка, где такое место работы, что можно с двумя таблицами недельку-другую ковыряться? Если не универ, то я тоже так хочу...
Завидуем дружно и молча. :D
Кстати, давеча я потратил почти три недели на составление части бд, состоящей в итоге из пяти таблиц и пяти запросов к ним. Ничего, заказчик остался вполне доволен. А мы тут за целый сайт говорим. Уверен, это лишь крошечная толика всего механизма. ;)
...
Рейтинг: 0 / 0
База для сайта #3
    #36746846
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L,

Ну если тебе любопытно, Я директор рекламного агентства, программирование это мое хобби,
и на мой заработок никак не влияет.

Как понимаешь мое образование не в сфере информатики,
поэтому и туплю над простыми вопросами...

Вас никто не заставляет отвечать, раз уж так неприятно.
...
Рейтинг: 0 / 0
База для сайта #3
    #36746848
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, Всем спасибо, нужные выводы я для себя сделал...
Тему можно закрывать.
...
Рейтинг: 0 / 0
База для сайта #3
    #36746893
Фотография Rin@t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schizophrenicЛадно, Всем спасибо, нужные выводы я для себя сделал...
Тему можно закрывать.Четвёртую серию захватывающего триллера ждать, господин директор?
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База для сайта #3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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