|
|
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Исходя из этого обсуждения ( База для сайта #2 ) переделал архитектуру таким образом (смотрите вложение) Скажите правильно или я допустил ошибки... так же прошу с акцентировать внимание на на типах данных и индексах - ограничениях Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 21:24 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
смени ник. С шизиком разговор опять не будет получаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 21:51 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
iscrafm, та тут все вроде просто и правильно, так что диалог будет конструктивным ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 21:52 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophreniciscrafm, та тут все вроде просто и правильно, так что диалог будет конструктивным ) не могу отвечать за остальных, но серьезно общаться с человеком, который дает себе погоняло "шизофреник", лично мне не доставляет удовольствия. Разве что похохмить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 21:57 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
iscrafm, сублимируй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 21:58 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
так что по теме? есть ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 22:01 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophrenic, вот вы так ратуете за 3НФ. Так разъясните, каким образом нарушится 3НФ, если вместо id_date и связанной таблицы дат поставить просто поле "dt" типа date. Только, пожалуйста, при доказательстве не опирайтесь на аргументы типа "ну это же очевидно, что моя схема самая 3НФ-ная!", а логически выведите это из определения 3НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 22:24 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
tanglir, Извиняюсь! Забыл переименовать, внешних ключей всего пять (на пять таблиц) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 23:13 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophrenic, все по-прежнему плохо: 1. Связь между Keywords и Documents является "многие-ко-многим", а у вас "один-ко-многим". 2. Отношение между Bodys (кстати, правильно Bodies) и Documents - какое? У одного документа может быть одно "тело". Если не так, то что означает несколько "тел" у "документа"? 3. Поскольку ID_Created убрали со схемы, то на примере отношения Titles <-> Documents. Допустим созданы 2 документа с названием "Фигня". Одна запись в таблице Titles и 2 ссылки в таблице Documents. Потом оказывается, что когда заносили, то просто не знали как назвать, и у первого документа заголовок должен быть "Смета". Что делать? Если поменять строку в Titles, то получится, что и второй документ начнет называться "Смета", что неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 00:57 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
Стало гораздо удобнее. Не очень понимаю описание связи, но, рассуждая здраво, все показанные связи, кроме с таблицей авторов, один-к-одному. Вынос поля с полным текстом по связи один-к-одному в отдельную таблицу -- обычное дело для систем с очень большим количеством записей. Несколько неудобно, но решабельно без процедур, одной логикой сайта. Вы уверены в выносе Title и Description? Судя по тому, что это, все-таки, сайт, и с поисковой системой он дружить должен, значения этих полей будут весьма редко повторяться... Чуть менее, чем никогда. Стоит ли тратить на них два джоина при выборке или два инсерта при добавлении или ацкий гемор с процедурами?! Скорости не добавит. Можно проверить рыбой. Про ключевые слова нужно отдельно пояснить. Для страницы будет только одно ключевое слово? Если ключевых слов несколько, можно задуматься над приведением к первой нормальной форме методом декомпозиции на связь один-ко-многим через доп. таблицу или в таблице с ключевыми словами, например. айди_аутоинкремент_для_уникальности айди_страницы ключевое слово1 1 главная2 1 тема сайта Индексы будут меняться по ходу изобретения запросов к базе. Сейчас не имеет смысла их обсуждать. Популярные индексы у вас выставлены. По типам данных. DATE лучше поменять на TIMESTAMP, размеры VARCHAR на вашей совести, интеджеры ОК, энумы - непонятно. Внешние ключи -- надо бы посмотреть подробней ДДЛ. Я бы не стал на удаление авторов делать каскад. Скорее NULL. А вот на апдейт каскад. Там у авторов я видел группы, наверно это айдишник группы и связанная таблица с группами должна присутствовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 01:30 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
мне интересно, какую смысловую нагрузку вы возлагаете на поля name,title и description name - название статьи, это понятно titile - тоже вроде как название, заголовок description - краткое описание, как правило небольшой кусочек текста, из начала статьи мне кажется name и title дублируют друг друга, одно из них лишнее. если назначение разное - поясните ключевые слова - мне тоже видится, для них отдельный "справочник", и через доп таблицу связь многие ко многим, так как к статье их явно будет несколько keywords(k_id,k_word); ref_keywords_documents(id,k_id,docunemt_id); таким образом будет удобно, выбрав ключевое слово, получить список статей с которым оно связанно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 20:28 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
Кифирчик, name - это URL страницы на латинице; title - это заголовок страницы <TITLE>Моя первая страница</TITLE> так что связи тут нет; description - до спецификации до ста символов, не вижу смыла тягать из при работе скажем с автором или деревьями, поэтому и вынес в отдельную таблицу; body - ну тут все понятно BLOB так же как и description тягать глупо; keywords - с отдельным справочником... хм... это ключевые слова отдельного документа, создавать такой справочник на мой взгляд неправильно, я же не знаю что будет описывать автор, а коллекционировать кучу возможно схожих а возможно и нет, слов.. наверное неправильно предварительный поиск будет бегать по description и title расширенный по body , keywords , title , date , author ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 21:20 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophrenic name - это URL страницы на латинице;что мешает тогда назвать его url, зачем нужен этот name, врагов запутать? ;-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 21:32 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophrenic keywords - с отдельным справочником... хм... это ключевые слова отдельного документа, создавать такой справочник на мой взгляд неправильно, я же не знаю что будет описывать автор , Это проблема автора, а не разработчика. schizophrenic а коллекционировать кучу возможно схожих а возможно и нет, слов.. наверное неправильно Это всё от вашего непонимания проблемы. Глупо считать: один документ - одно ключевое слово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 21:40 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
egorychschizophrenic name - это URL страницы на латинице;что мешает тогда назвать его url, зачем нужен этот name, врагов запутать? ;-))не понял Вас: Name будет типа: Код: plaintext 1. 2. 3. 4. 5. что означает: Код: plaintext 1. 2. 3. 4. 5. то есть в таблице будет ID PID SID Name101About202Help321FAQ403News541New1642New2 Где ID это родитель, Где PID это указатель родителя Где SID это положение в меню и дереве Где Name это имя по которому разбираем дерево ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 21:43 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
Rin@tЭто всё от вашего непонимания проблемы. Глупо считать: один документ - одно ключевое слово.Почему одно ключевое слово? предположим есть текст описывающий ту или иную компанию которая лет десять продает пиво, так вот в случае с этой компанией получится строчка типа: компания, лидер, пиво, десять лет, качество... то есть это ключевые слова для META тега, и записываю я из одной строчкой до ста символов (в соответствии со спецификацией) Что я не так понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 21:48 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophrenicRin@tЭто всё от вашего непонимания проблемы. Глупо считать: один документ - одно ключевое слово.Почему одно ключевое слово? предположим есть текст описывающий ту или иную компанию которая лет десять продает пиво, так вот в случае с этой компанией получится строчка типа: компания, лидер, пиво, десять лет, качество... то есть это ключевые слова для META тега, и записываю я из одной строчкой до ста символов (в соответствии со спецификацией) Что я не так понял?Про 1НФ стоит прочитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 21:54 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
Rin@t, 1НФ тут причем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 21:56 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophrenic, ну у вас ведь может быть ещё другая статья про другую компанию, которая лидер не в пиве а в производстве сухариков, и слово "лидер" у неё тоже в keywords. если хранить отдельным справочником - то можно каждое ключевое слово подсветить ссылкой, это как бы вариант поиска. можно выбрать список всех статей, которые как-то к "пиву" (например) относятся. автор, ключевые слова галочками выбирает, а чего нету - сам вносит, пополняя справочник. если этого не надо, то храните все в одной строке использование в качестве идентификатора, строку - дырочка в безопасности, отличный вариант подолбать всякими шелами. хотя конечно эта проблема решаема. и смотрю, вы прямо статью с "листьями" дерева разделов связываете. имхо дерево разделов с названиями - это одно а статьи - это другое. если вам надо будет в одной ветке вставить тексты двух статей? или иные вариации? должна быть гибкость некоторая ещё. ваш хостер дает права хранимые процедуры делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 22:09 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
Кифирчикиспользование в качестве идентификатора, строку - дырочка в безопасности, отличный вариант подолбать всякими шелами. хотя конечно эта проблема решаема.можно по подробнее? честно говоря я вообще не понял о чем Вы..Кифирчики смотрю, вы прямо статью с "листьями" дерева разделов связываете. имхо дерево разделов с названиями - это одно а статьи - это другое. если вам надо будет в одной ветке вставить тексты двух статей? или иные вариации? должна быть гибкость некотораяВы считаете правильнее хранить ID, SID, PID в отдельной таблице?Кифирчикещё. ваш хостер дает права хранимые процедуры делать?Разве большая часть хостеров не поддерживают работу хранимых процедур? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2010, 23:15 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophrenicчестно говоря я вообще не понял о чем Вы.. забудьте ))) schizophrenicКифирчики смотрю, вы прямо статью с "листьями" дерева разделов связываете. имхо дерево разделов с названиями - это одно а статьи - это другое. если вам надо будет в одной ветке вставить тексты двух статей? или иные вариации? должна быть гибкость некотораяВы считаете правильнее хранить ID, SID, PID в отдельной таблице? я не знаю какие у вас требования к примеру, у себя, я в дереве разделов сделал поля с "названием" и "содержанием" в содержании, можно было и просто html ввести, а можно "внутренние ссылки", к примеру {type=art;id=24} при отображении, в верху страницы выводится список подразделов, а чуть ниже "содержание дерева", {type=art;id=24} парсится, и вместо этого выражения выводится статья из БД id которой 24 так можно и произвольный текст ввывести, и статью, и пару статей schizophrenicКифирчикещё. ваш хостер дает права хранимые процедуры делать?Разве большая часть хостеров не поддерживают работу хранимых процедур? сейчас точно не знаю, но года 3 назад было проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 00:12 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophrenic keywords - с отдельным справочником... хм... это ключевые слова отдельного документа, создавать такой справочник на мой взгляд неправильно, я же не знаю что будет описывать автор, а коллекционировать кучу возможно схожих а возможно и нет, слов.. наверное неправильноЭто полный абзац! Этот человек совсем недавно хотел вынести в "справочник" просто все заносимые даты. Вынесение заголовков документов в отдельный справочник сомнений не вызывает. А тут "на мой взгляд неправильно". ЗЫ. Расскажи-ка, где такое место работы, что можно с двумя таблицами недельку-другую ковыряться? Если не универ, то я тоже так хочу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 01:10 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
schizophrenic1НФ тут причем? 1НФ гласит, что в одном поле не может быть более одного значения. То есть, хранить несколько ключевых слов в одном поле противоречит 1НФ, следовательно, по определению, противоречит 2НФ и 3НФ. Да. Ключевые слова разделять не очень приятно и, в одном из вариантов реализации, очень похоже на тот огород, что вы городили с таблицами, но вот это как раз то, что можно положить на алтарь с целью обеспечения функциональности и скорости, в конечном итоге. Ну и до кучи приведет к нормализации до 3НФ. Мой вам совет, уберите тайтл и дескрипшен (возможно даже текст) обратно в таблицу, не изворачивайтесь с ними, это ничего не даст, а займитесь лучше ключевыми словами -- там собаку покушаете. Н.Б. С другой стороны, конечно, если ключевые слова никогда-никогда не будут использоваться отдельно друг от друга как самостоятельные значения, а только как монолитная строка текста, забудьте обо всем вышесказанном и внесите её в документ одной строкой, потому что ваша задача диктует вам, что этот набор слов является одним значением, и, следовательно, таблица в 1НФ. Например, если у вас в запросе бдует WHERE keyword LIKE '%футбол%', все, не первая нормальная форма. Потому что ключевое слово "футбол" используется как самостоятельное значение и таблица не в 1НФ. Senya_LЗЫ. Расскажи-ка, где такое место работы, что можно с двумя таблицами недельку-другую ковыряться? Если не универ, то я тоже так хочу... Завидуем дружно и молча. :D Кстати, давеча я потратил почти три недели на составление части бд, состоящей в итоге из пяти таблиц и пяти запросов к ним. Ничего, заказчик остался вполне доволен. А мы тут за целый сайт говорим. Уверен, это лишь крошечная толика всего механизма. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 02:33 |
|
||
|
База для сайта #3
|
|||
|---|---|---|---|
|
#18+
Senya_L, Ну если тебе любопытно, Я директор рекламного агентства, программирование это мое хобби, и на мой заработок никак не влияет. Как понимаешь мое образование не в сфере информатики, поэтому и туплю над простыми вопросами... Вас никто не заставляет отвечать, раз уж так неприятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2010, 03:13 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36746643&tid=1542620]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
189ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 527ms |

| 0 / 0 |
