Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум веб-мастеров _ Базы данных (MySQL, PostgreSQL, ODBC, ...) _ Структурирование таблиц в Mysql

Автор: satana 16.5.2007, 2:32

Написал гостевую, пора переходить на новый уровень=). Недолго думая я пришел к выводу что топики в форуме создаются командой CREATE TABLE, а имя этой таблицы заносится в отдельную таблицу - это хорошо когда 1 форум, но все усложняется если форумов несколько, а если еще есть несколько разделов то этот способ сложноват получается, можно ли в MySQL каким либо образом структурировать таблицы, навроде файловой системы Windows(папки, подпапки) - как решаются подобные проблемы?

Автор: gid 16.5.2007, 11:51

Категорически не согласен с Вашими выводами:

Цитата(satana @ 16.5.2007, 3:32) *

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

CREATE TABLE - используется для создания таблиц, в которых хранятся данные, причем в больших количествах. А использовать таблицы для хранения данных наподобии топиков в форуме крайне не разумно, т.к. это создает ненужную нагрузку на mysql сервер и в придачу очень сложно реализуются стандартные механизмы форумов (подсчет: тем, сообщений, ....). Обычно делают либо две таблицы: в первой - хранятся все параметры топиков, в другой - ответы на топик. Или одну таблицу, в которой хранится вся информация о топиках и сообщениях.

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

Цитата(satana @ 16.5.2007, 3:32) *
можно ли в MySQL каким либо образом структурировать таблицы, навроде файловой системы Windows(папки, подпапки) - как решаются подобные проблемы?

Можно, но достаточно сложно.
Опишу примерный алгоритм всего этого:
1. Создается mysql таблица с нужными полями для данных, к нужным полям добавляют поле в котором будет указываеться категория (каталог) к которому принадлежит данная запись, а так же поле с уникальным номером (id).
2. После заполнения таблицы значениями производится выборка значений id и категории.
3. На основании этих данных строится древо.
4. При обращении к каком либо уровнб древа по id находим нужные записи и строим древо начинаю уже с этого уровня.

Автор: sashkovishe 16.5.2007, 12:40

Цитата(satana @ 16.5.2007, 4:32) *

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

Полностью согласен с тобой gid... Это не очень разумно было бы...
Цитата(satana @ 16.5.2007, 4:32) *

можно ли в MySQL каким либо образом структурировать таблицы, навроде файловой системы Windows(папки, подпапки) - как решаются подобные проблемы?

можно еще использовать объединение таблиц...
Это способность определять связи между многочисленными таблицами и выводить информацию из них. Это однин из видов операций в релционных базах данных...

Invision Power Board ()
© Invision Power Services ()