﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Базы Данных / Базы данных  / "Нитевая" структура БД / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Wed, 03 Dec 2008 06:23:32 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: "Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>Пожалуйста.</description><pubDate>Fri, 29 Jun 2007 09:55:37 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: "Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>[b]Огромнейшее тебе СПАСИБО[/b] [b]bazile[/b], за помощь в структуре БД для форумов, а так же за разъяснения =))))))))))))))))))))))))))))))))))))))))</description><pubDate>Thu, 28 Jun 2007 21:44:13 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>RE: "Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>Подобная схема имеет ряд серьезных недостатков:&lt;OL&gt;&lt;LI&gt;Для запросов придется использовать динамический SQL, что само по себе сразу ухудшает производительность.&lt;/LI&gt;&lt;LI&gt;Лишние накладные расходы на хранение большого кол-ва таблиц. Ведь кроме собственно данных есть еще и служебная информация о таблице. Плюс возможность (пусть даже и теоретическая) натолкнуться на физические ограничения СУБД на кол-во таблиц.&lt;/LI&gt;&lt;LI&gt;Создание тем и форумов будет требовать больше времени так как сначала требуется создать таблицу, после чего уже записывать данные.&lt;/LI&gt;&lt;LI&gt;Следствием п.3 является необходимость наличия у пользователя повышенных привилегий что противоречит общепринятой практике работы с минимально необходимыми привилегиями.&lt;/LI&gt;&lt;LI&gt;Сложнее будет сделать поиск, отбор всех сообщений пользователя и тому подобную функциональность.&lt;/LI&gt;&lt;LI&gt;Реляционные схемы построения базы обычно активно применяют механизмы защиты целостности базы предоставляемые самой СУБД. Например, внешние ключи. В данном же случае нельзя заранее создать отношения типа FOREIGN KEY. То есть надо или вообще отказываться от механимзмов зашиты - что глупо - или создавать подобные связи на лету вместе с таблицей -  что влечет еще большие накладные расходы.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Как итог: это плохая идея. Раз у нас реляционные СУБД, то и базы надо строить соответственно. Иначе жди проблем.&lt;/P&gt;&lt;P&gt;Насчет скорости работы тоже думаю все понятно.</description><pubDate>Thu, 28 Jun 2007 20:30:02 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: "Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>[quote][b]bazile (28.06.2007)[/b][hr]Не смог твой пример понять. Ты бы хоть пояснил для чего каждая таблица нужна. Из "информативного" названия messagers2, например, это понять нельзя. Тоже самое касается названия поляscil.[/quote]&lt;br&gt;&lt;br&gt;-- Форумы&lt;br&gt;CREATE TABLE tems&lt;br&gt;(&lt;br&gt;id INT AUTO_INCREMENT PRIMARY KEY,&lt;br&gt;categori TINYTEXT, -- категория к который относятся темы &lt;br&gt;tema TINYTEXT, --  название темы&lt;br&gt;scil TINYTEXT, -- Ссылка на подтемы (название таблицы), данной темы&lt;br&gt;num_tem INT, -- кол-во тем &lt;br&gt;posl_mess TINYTEXT, --кто оставил последнее сообщение&lt;br&gt;levelz TINYTEXT -- Вложенность, уровень&lt;br&gt;)&lt;br&gt;&lt;br&gt;-- Темы в форуме&lt;br&gt;CREATE TABLE "Ссылка на подтемы (название таблицы), данной темы"&lt;br&gt;(&lt;br&gt;ids INT AUTO_INCREMENT PRIMARY KEY,&lt;br&gt;podtema TINYTEXT, -- Название подтемы&lt;br&gt;scils TINYTEXT, -- Ссылка на сообщение (название таблицы), данной подтемы&lt;br&gt;num_mess INT, -- кол-во сообщений в теме&lt;br&gt;posled_mess TINYTEXT, -- кто оставил последнее сообщение в теме&lt;br&gt;datazz DATETIME, -- дата создания&lt;br&gt;levelz TINYTEXT -- Вложенность, уровень&lt;br&gt;)&lt;br&gt;&lt;br&gt;-- Ответы на тему&lt;br&gt;CREATE TABLE "Ссылка на сообщение (название таблицы), данной подтемы"&lt;br&gt;(&lt;br&gt;ids INT AUTO_INCREMENT PRIMARY KEY,&lt;br&gt;nickname TINYTEXT, -- Логин&lt;br&gt;messaga LONGTEXT, -- Сообщение&lt;br&gt;datazz TINYTEXT -- дата&lt;br&gt;)&lt;br&gt;&lt;br&gt;зы: как заполнчются поля в моём предыдущем посте =)&lt;br&gt;&lt;br&gt;ззы: при каждой новой теме форума либо подтеме форума создаёться новая таблица...&lt;br&gt;Тоесть при наличии одной темы и 5 подтем имеем 6 таблиц...&lt;br&gt;при наличие 4 тем... и 0 подтем в каждой имеем 4 таблицы...&lt;br&gt;&lt;br&gt;[quote]Я имел в виду такую структуру БД, когда в таблице со списком форумов есть поле вроде Parent_ID указывающее на форум-родитель. Для тем же в качестве родителя выступает только ID форума. [/quote]&lt;br&gt;&lt;br&gt;Мне интересно, если у нас есть только три таблицы и вних хранятся скажем "ccылки" на нужные данные, то если данных в таблице будет 1 миллион, то как скажется это на быстродействии, если при выборке нужных данных мы используем запрос SELECT (поиск)... при условии, что он проходится по всем записям в таблице...&lt;br&gt;&lt;br&gt;И возникает ещё один вопрос, какая из структур будет эффективнее в работе... та которая имеет допустим 1 миллион таблиц либо структура с тремя таблицами с 1 миллионом полей и "ссылками" на данные в эти таблицы?</description><pubDate>Thu, 28 Jun 2007 16:36:30 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>RE: "Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>Не смог твой пример понять. Ты бы хоть пояснил для чего каждая таблица нужна. Из "информативного" названия messagers2, например, это понять нельзя. Тоже самое касается названия поля scil.&lt;P&gt;Я имел в виду такую структуру БД, когда в таблице со списком форумов есть поле вроде Parent_ID указывающее на форум-родитель. Для тем же в качестве родителя выступает только ID форума. Например так:&lt;/P&gt;&lt;P&gt;[quote]-- Форумы&lt;BR&gt;CREATE TABLE forum&lt;BR&gt;(&lt;BR&gt;iForum_ID int NOT NULL PRIMARY KEY,&lt;BR&gt;iParentForum_ID int NULL,&lt;BR&gt;sForumName varchar NOT NULL,&lt;BR&gt;)&lt;/P&gt;&lt;P&gt;-- Темы в форуме&lt;BR&gt;CREATE TABLE topic&lt;BR&gt;(&lt;BR&gt;iTopic_ID int NOT NULL PRIMARY KEY,&lt;BR&gt;iForum_ID int NOT NULL,&lt;BR&gt;iUser_ID int NOT NULL, -- Автор темы&lt;BR&gt;sTopicName varchar NOT NULL, -- Название темы&lt;BR&gt;sTopicBody varchar NOT NULL, -- Текст темы&lt;BR&gt;dtCreated datetime NOT NULL, -- Дата создания темы&lt;BR&gt;)&lt;/P&gt;&lt;P&gt;-- Ответы на тему&lt;BR&gt;CREATE TABLE topic_reply&lt;BR&gt;(&lt;BR&gt;iTopicReply_ID int NOT NULL PRIMARY KEY,&lt;BR&gt;iTopic_ID int NOT NULL,&lt;BR&gt;iUser_ID int NOT NULL, -- Автор ответа&lt;BR&gt;sReplyBody varchar NOT NULL, -- Текст ответа&lt;BR&gt;dtCreated datetime NOT NULL, -- Дата создания ответа&lt;BR&gt;)[/quote]</description><pubDate>Thu, 28 Jun 2007 14:15:26 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: "Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>[quote][b]bazile (28.06.2007)[/b][hr]Мне кажется что имеетсяв виду следующее: в виде дерева представляются только форумы, а сами сообщения хранятся как список.[/quote]&lt;br&gt;&lt;br&gt;Тоесть нечно на подобие:&lt;br&gt;&lt;br&gt;tems:&lt;br&gt;id | Категория | tema         | scil          | kol-vo_tem | posl_mess | levelz |&lt;br&gt;1  | Общее     | О форуме   | podtema1 |      1         |   Admin    |  true  |&lt;br&gt;2  | Общее     | О форуме2 | podtema2 |      1          |   Admin    |  true  |&lt;br&gt;&lt;br&gt;podtema1:&lt;br&gt;ids | podtema     | scil             | num_mess | posled_mess | data                   | levelz |&lt;br&gt;1   | Новая тема  | messagers1 |     1         |    Admin      | 2006-09-14 14:57:08 | false  |&lt;br&gt;2   | Новая тема2 | messagers2 |     1        |    Admin      | 2006-09-14 15:30:05 | false  |&lt;br&gt;&lt;br&gt;messagers1:&lt;br&gt;ids | nick  | messages  |&lt;br&gt;1   | Admin | Сообщение |&lt;br&gt;&lt;br&gt;messagers2:&lt;br&gt;ids | nick  | messages  |&lt;br&gt;1   | Admin | Сообщение |</description><pubDate>Thu, 28 Jun 2007 13:42:36 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>RE: "Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>Мне кажется что имеется в виду следующее: в виде дерева представляются только форумы, а сами сообщения хранятся как список. </description><pubDate>Thu, 28 Jun 2007 10:19:04 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: "Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>[quote][b]bazile (27.06.2007)[/b][hr]Нитевая структура? Что это такое?[/quote]&lt;br&gt;&lt;br&gt;Впервые о ней услышал тут: [url=http://php.ru/forum/viewtopic.php?t=6199]http://php.ru/forum/viewtopic.php?t=6199[/url]</description><pubDate>Wed, 27 Jun 2007 20:25:23 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>RE: "Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>Нитевая структура? Что это такое?</description><pubDate>Wed, 27 Jun 2007 19:31:52 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>"Нитевая" структура БД</title><link>http://relib.com/forums/Topic914397-2-1.aspx</link><description>Слышал о том, что современные форумы используют "Нитевую" структуру БД...&lt;br&gt;Интересно посмотреть на пример построение БД с использованием данной структуры...&lt;br&gt;И какие её достоинства и недостатки по сравнению с обычной древовидной структурой и со сбалансированном деревом (B-дерево)...</description><pubDate>Wed, 27 Jun 2007 18:39:57 GMT</pubDate><dc:creator>Vizlim</dc:creator></item></channel></rss>