Вопросы о CMS. Планирование. Создание. Функциональность.

Tronyх

Новичок
Вопросы о CMS. Планирование. Создание. Функциональность.

За последние время на этом форуме стали часто обсуждаться темы о разработке CMS, и их функциональных возможностях. Я не буду исключением :) Вот мои основные вопросы:
1. Нужно ли делать возможность работы с нестандартными БД (Oracle, PostgreSQL, Sybase..., под стандартной я понимаю MySQL), если да то какие плюсы в использовании этих БД (хотябы коротко).
2. Как обеспечить хорошую гибкость и модульность.
3. На чём можно сэкономить в скорости? Мне известно 2 "нормальных" способа это: генерировать статику и оптимизация запросов к БД, да и структуры БД тоже.
4. Что чаще всего требует заказчик от админ интерфейса? И какие минимальные функциональные возможности должна иметь средняя CMS?
 

Phoenix

Guest
кстати очень акутальный вопрос,
хотелось бы узнать мнение людей, кто занимался разработкой CMS

какие дадите советы?
 

Vinny

Guest
Я занимался всякого рода CMS.

1. Я бы MySQL назвал нестандартной :) Все зависит от того, на сколько навороченная система пишется, под кого она расчитана. Если там предполагается огромное количество данных, то нужно юзать крупную БД. Необходимо учитывать стоимость решения. Если эта CMS предназначена для небольших сайтов с минимумом функционала, а написана будет под Oracle, на который лицензия стоит 30 000$, то вряд-ли ее кто-то возмет.
2. Тут главное не переусердствовать, а то можно написать универсальную и гибкую систему, но тормозную. Был у меня такой опыт... Т.е. если надо написать систему публикации материалов для издательства, то и надо писать под эти требования систему, а не разрабатывать настраиваемую систему под любые бизнес-процессы.
3. Оптимизация базы данных, имхо, даст наибольший прирост по производительности. Статика тоже хороша, но не все задачи можно положить под статику. Например, если эта система требует на клиентской части разделение контента по пользователям - со статикой будут напряги.
4. Минимум - это создание и редактирование структуры, публикация информационных элементов. Возможно разграничение прав на действия в админской части. А дальше все зависит от того, под какие бизнес-процессы пишется система.
 

Tronyх

Новичок
Все зависит от того, на сколько навороченная система пишется, под кого она расчитана.
Система должна быть универсальной, и в моём случае не под кого конкретно она не рассчитана. Так как у большинства людей пишуших CMS дела обстоят так же, так что в дальнейшем давайте считать, что CMS универсальна и может обслуживать как средний, так и большой проект.

на который лицензия стоит 30 000$
Я знал, что она стоит денег, но не думал что таких! А что скажешь о PostgreSQL и Sybase?

Оптимизация базы данных, имхо, даст наибольший прирост по производительности
А какие даш советы по оптимизации БД?

Статика тоже хороша, но не все задачи можно положить под статику. Например, если эта система требует на клиентской части разделение контента по пользователям - со статикой будут напряги.
Ну само собой, что в возможных случаях. ИМХО хорошо когда можно выбирать какие страницы/разделы делать статичными, так я и делаю. ;)
 

Vinny

Guest
Я придерживаюсь другого мнения. Нельзя писать слишком универсальную систему. Я сейчас колбашусь с одной такой. Не буду говорить какая компания ее разработала, но это известная софтверная компания в Москве. Так вот в ней реализован очень "приятный" механизм вывода ИЭ. Действительно, хороший механизм. Но у нас есть проект построеный на базе этого CMS, в котором очень много разделов (сечас около 500, а может быть десятки тысяч). Так вот в данном случа всплыло очень много проблем, потому как система тестировалась на ~100 разделов.

ИМХО PostgreSQL нужно юзать, достаточно мощная БД из бесплатных. Можно написать под PostgreSQL, а потом сделать версию под Oracle. Вообще-то все зависит от системы. Может тебе и MySQL хватит, всетаки по скорости она сделает и PostgreSQL, и Oracle (согласен что можно придумать такой запрос, который в Oracle отработает быстрее, но я говорю о "разумных" запросах). Sybase, на сколько я помню, платная. Сам ее не юзал.

Я сам люблю статику :)

По оптимизации запросов к базе данных написано куча книг. Из общих - использовать простые запросы, минимум объединений. Использовать поля наименьшего возможного размера (зачем тебе 4-байтный int, если у тебя там будет максимум 100). Стараться объединять таблицы по индексируемым полям, по индексам (а то я видел таких, что объединяли по varchar). Строить индексы там где будет много select-ов. Ну и так далее.
 

Tronyх

Новичок
А стоит ли "связываться" с такими библиотеками как ADODB?
 

Vinny

Guest
Ну какдля чего ;) Чтобы можно было бы выбирать с какой БД будет работать система.
Если из какого-нить ASP - то да, а если из PHP то нафига? Имхо лучше написать пару классов под разные базы и подставлять нужный.
 

kvn

programmer
Если из какого-нить ASP - то да, а если из PHP то нафига? Имхо лучше написать пару классов под разные базы и подставлять нужный.
Что в принципе и делает за тебя ADODB,
но ИМХО, приятней юзать PEAR::DB (http://pear.php.net/)
 

Tronyх

Новичок
Если из какого-нить ASP - то да, а если из PHP то нафига? Имхо лучше написать пару классов под разные базы и подставлять нужный.
Так это и есть такой класс :D Ты перепутал.
 

kvn

programmer
Предлагаю зайди на http://php.weblogs.com/adodb_manual.
был я там, раньше тоже на ADODB сидел.


P.S. Кстати как вызвать процедуру при использовании pear?
Синтаксис можешь привести?
По подробнее?
Какую процедуру?
sql-function? $res = $db->getOne("SELECT FROM my_func(1)");
Или я чего-то не понял?
 

saint

Guest
А вот кто-нибудь может сказать о хороших визуальных DHTML-ных окошках ввода инфы? Я нашел RichText (http://sourceforge.net/projects/richtext/)
 
Сверху