Вопрос к программистам. Организация вывода дерева пользователю...

dimases

Новичок
Вопрос к программистам. Организация вывода дерева пользователю...

Вообщем у меня есть такая задача по выводу, на которою я никак не могу найти оптимальное решение...
Ситуация такая есть 1. Классы (своего рода директории), 2. Объекты (файлы). Классы, понятно, выстраиваются по иерархии, как и настоящие директории. Объекты принадлежат тому или иному классу (как файл находиться в директории). Но! Файлы тоже имеют иерархию. Точнее принадлежность. То есть например, объекту "Пушкин" класса "Авторы", принадлежит "Дубровский", который в классе "Повести", а "Повести" в классе "Произведения". И "Авторы" и "Произведения" - в классе "Русская литература", который в свою очередь в корневом классе "Литература".

Дерево фактически такое:
Код:
Литература 
  Русская литература
    Авторы
      Пушкин Александр Сергевич<--
      Лермонтов Михаил Юрьевич   |
    Произведения                 |
      Повести                    |
        Дубровский<---------------
  Иностранная литература
Так вот, как лучше выводить пользователю, то есть чтобы было все ясно и понятно? Никак не могу придумать оптимальную организацию...
У кого есть предложения, как это лучше сделать?

(Реализация всего этого ес-сно на РНР - выход HTML)...
 

tony2001

TeaM PHPClub
вопрос по ХТМЛ к программистам?
ну отделяй уровни разным количеством &nbsp;...
 

Dim-Dim

looking...
1) Причем тут PHP не понятно
2) Почему у тебя произведения на одном уровне с авторами?
Пиши:
Пушкин
Произведения
Повести
Дубровский
 

Dim-Dim

looking...
мда... с форматированием не получилось
короче, я имел ввиду так:
Пушкин->Произведения->Повести->Дубровский
 

NeWMaN

Новичок
Вопрос совершенно непонятен, но правильная организация базы данных для хранения этого всего не помешала бы :)
 

Макс

Старожил PHPClub
я как фанат pear могу порекомендовать
pear :: html :: treeMenu (только сразу предупреждаю, работает не во всех броузерах)
 

Demiurg

Guest
dimases, как бы ты не выводил, пользователю будет не понятно. Обычно нужны простые странички типа:
категории:
русская литература(ссылка на список)
английская дитература(ссылка на список)
другая литератуа(ссылка на список)
все это ведет на другую страницу:
Пушкин Александр Сергеевич(ссылка на список произведений)
Лермонтов Михаил Юрьевич(ссылка на список произведений)
Пупкин Василий Висильевичьс(сылка на список чего нибудь)
и тд
 

dimases

Новичок
All,
Да нет, я не имею в виду технологию вывода дерева, я спрашиваю как на ваш взгляд было бы это максимально удобнее и понятнее пользователю. А вывести мне без проблем хоть черта... =)

NeWMaN,
Что ты имеешь в виду под правильной организацией БД? Предолжи структуру хранения?

Dim-Dim,
Мне почему-то такая иерархия показалась не очень удобной...

All,
И все-таки вопрос в том, как наиболее лучше выводить такого плана структуры?
 

dimases

Новичок
tony2001,
Ну, если HTML позволяет делать запрос к БД то тогда флаг тебе в руки (и якорь на шею). А здесь все-таки комплексный вопрос, а не генерация HTML. Вчитываться внимательнее надо было, а потом уже тему переносить...
 

tony2001

TeaM PHPClub
у тебя вопрос касается строго форматирования.
то, что где-то там какой-то скрипт есть, который вынимает данные - это другой вопрос.
ты их ВЫВЕСТИ нормально не можешь.
вопросы есть ?

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

dimases

Новичок
tony2001,

Я их могу нормально вывести... Проблема в другом, как это удобнее будет пользователю? В виде дерева, в виде файл-менеджера? Или как?

Ну ладно, не хотите помогать, как хотите, я уже сам решил, как мне кажется лучше.
И если вот это относиться к HTML и выводу, то извините, ошибся:

3 кБ php-кода удалено модератором
 

NeWMaN

Новичок
dimases
Не знаю как организовано у тебя... Да и полной информации о задаче нет.
Могу предложить следующую структуруру базы:

1. Таблица "автор"
PK
ФИО
....другая инфа

2. Таблица "произведения"
PK
Название
Тип (повесть, рассказ, и т.п.)
Вид лит-ры (русская, зарубежная, классика и т.п.)

3. Таблица "автор произведение"
PK
ключ автора
ключ произведения

Примерно так. Можно еще конечно "тип произведения" и "вид лит-ры" вынести в отдельные таблицы и сделать либо прямые связи, либо через таблицы.
 

dimases

Новичок
NeWMaN,

Ну понятно... Хотя, я делаю полностью объектную систему, соответственно таблиц по авторам и произведениям, конечно нету. Там есть таблица классов и таблица объектов. Вообщем я сдела так:
1. Реализация типа файл-менеджера (классы - директории), объекты (корневые) - файлы.
2. Можно ходить по дереву классов (как по директориям) и работать в них с объектами (создавать, модифицировать, удалять).
3. Для создания связанного объекта (пример "Пушкин" -> "Дубровский") необходимо войти в объект, через него (то есть объект уже определен) дойти до нужной категории и создать там новый объект. То есть действия по дереву:
Литература -> Русская Литература -> Авторы -> Пушкин -> Произведения -> Повести -> Дубровский.
Это так создаются классы и объекты (на любом из уровней можно создать и класс и объект).

Так вот, вопрос к вам, как вы думаете, насколько это будет удобно и интуитивно будет понятно (я сам это оценить не могу, так как не полностью реализовано все)?

Модератор,
Мне кажется, что все-таки эта тема не подходит для HTML и JS (поэтому я ее туда и не постил), как тебе показалось сначала. Может в подходящий раздел вернешь?
 

Макс

Старожил PHPClub
Так вот, вопрос к вам, как вы думаете, насколько это будет удобно и интуитивно будет понятно (я сам это оценить не могу, так как не полностью реализовано все)?
это никак не относится к PHP.


Мне кажется, что все-таки эта тема не подходит для HTML и JS (поэтому я ее туда и не постил), как тебе показалось сначала. Может в подходящий раздел вернешь?
конечно, в OFFTOPIC
 

NeWMaN

Новичок
dimases

Реализуй как тебе удобней, но ИМХО у тебя в логике проблемка

Литература -> Русская Литература -> Авторы -> Пушкин -> Произведения -> Повести -> Дубровский.
Вот здесь лишняя ветвь "Произведения"
Т.е. сразу переход Автор->Повести или Автор->Рассказы.

Так же нужна альтернативная цепочка:
Литература -> Русская Литература -> Произведения -> Повести -> Дубровский -> Пушкин.

А вот как при этом избежать дублирования уже надо смотреть...
 

Ямерт

The Old One
А по-моему надо сначала самому определиться, чего хочешь, а потом задавать вопрос.

Насколько я понимаю твою ситуацию, ты хочешь, и чтобы за тебя спроектировали базу данных, и посоветовали дизайн.
Считаю, что структура базы - вещь очень интимная. Лучше разберись сам и подумай хорошенько - во всяком случае область проблемы ты знаешь лучше всех нас.
А что касается дизайна - соглашусь, пожалуй, с Максимом - pear :: html :: treeMenu тут, имхо, оптимальное решение.
 
Сверху