Есть тут такое дело, я постораюсь объяснить.
Предположим есть некая форма для заполнения информации о заказчиках в которую входят: ФИО, адре, телефон, почта и т.д.
Все это хорошо до тех пор, пока не требуется, что бы пользователь сам определял какие данные нужны. Т.е. в настройках, пользователь сам добавляет и называет поля, которые создадутся и будут использоваться в дальнейшем.
Фактически работа программиста заканчивается на написании скриптов, которые сами создают и используют информацию, которую ввел пользователь.
Пример:
Я хочу что бы к информации о заказчике отнасились следующие данные:
ФИО, организация, адрес, телефон офиса, телефон мобильный, телефон домашний, почта, доп. информация.
Соответственно скрипт сам создается нужную таблицу в SQL, генерирует HTML код и т.д. Так же должна указываться дополнительная информация, такая как: длина каждого поля imput, макс. кол-во символов в input, будет это imput или select и т. д.
Вот я размышаляю как можно реализовать такое дело и насколько это будет сложно.
Спустя 20 минут, 31 секунда (31.08.2009 - 09:32) sergeiss написал(а):
Реализовать это можно. Но, по-моему, имеет смысл только при написании некой серьёзной CMS. Потому что если это именно серьёзная CMS, то на общем фоне реализация будет несложная. А иначе "овчинка выделки не стоит". Ну, только если для практики...
Спустя 4 минуты, 3 секунды (31.08.2009 - 09:36) ApuktaChehov написал(а):
В том то и дело, что не для практики.
Необходима гибкая система...
Но это альтернатива:
Создать заранее предусмотренный набор полей, а пользователь уже выбирает, что ему конкретно нужно.
Это CMS - упраление предприятием.
Есть усложнаяющий момент...
Каждое поле должно иметь свой div. Этому слою присваевается положение на странице, а так же z-index. Настройка положения на странице управляет JavaScript и Ajax.
Необходима гибкая система...
Но это альтернатива:
Создать заранее предусмотренный набор полей, а пользователь уже выбирает, что ему конкретно нужно.
Это CMS - упраление предприятием.
Есть усложнаяющий момент...
Каждое поле должно иметь свой div. Этому слою присваевается положение на странице, а так же z-index. Настройка положения на странице управляет JavaScript и Ajax.
Спустя 16 минут, 35 секунд (31.08.2009 - 09:53) DenPHP написал(а):
так в чем проблема написать?
пользователь задаёт что надо. создается бд.
а формы генерируются...тоже не чего сложного нету.
ну вытянуло первый столбец, тип и создает ... не чего сложного но вот очень нудно.
пользователь задаёт что надо. создается бд.
а формы генерируются...тоже не чего сложного нету.
ну вытянуло первый столбец, тип и создает ... не чего сложного но вот очень нудно.
Спустя 17 минут, 51 секунда (31.08.2009 - 10:11) glock18 написал(а):
Цитата |
так в чем проблема написать? пользователь задаёт что надо. создается бд. а формы генерируются...тоже не чего сложного нету. ну вытянуло первый столбец, тип и создает ... не чего сложного но вот очень нудно. |
может сделаешь тогда?
Спустя 5 минут, 29 секунд (31.08.2009 - 10:16) ApuktaChehov написал(а):
Все не так просто.
В последствии получается иерархия.
Самогенерирующийся код будет основываться на, опять же, самогенерирующимся коде.
Тут то и начнутся серьезные проблемы...
Я просто хотел узнать мнения экспертов по поводу этого дела.
В последствии получается иерархия.
Самогенерирующийся код будет основываться на, опять же, самогенерирующимся коде.
Тут то и начнутся серьезные проблемы...
Я просто хотел узнать мнения экспертов по поводу этого дела.
Спустя 14 минут, 24 секунды (31.08.2009 - 10:31) glock18 написал(а):
Ну если мнение.
Все это не так сложно, если хорошо представлять чего ты хочешь получить.
И достаточно часто в таких задачах разработчик как раз не очень это представляет.
Это вполне разрешимо на самом деле. Тебе нужно описать поведение каждой сущности искомой формы - задать поведение для каждого возможного типа поля. Это можно и лучше делать классами. Один тип поля - один класс.
После этого ты получишь инструментарий для создания формы.
Юзеру же просто предлагаешь выбрать нужные поля, и указать им тип из предлагаемых.
Он жмакает кнопочку, и ты
1. создаешь нужную таблицу.
2.а создаешь необходимые страницы с использованием классов, которые создал выше.
2.б или же создаешь класс формы, который в котором прописываешь использование этих полей.
ЗЫ: эту задачу можно решить и без генерирования кода. несколько сложнее получится. ну или сгенерированный код сделать несколько более гибким. я описал выше достаточно простой, но далеко не самый лучший вариант реализации.
Все это не так сложно, если хорошо представлять чего ты хочешь получить.
И достаточно часто в таких задачах разработчик как раз не очень это представляет.
Это вполне разрешимо на самом деле. Тебе нужно описать поведение каждой сущности искомой формы - задать поведение для каждого возможного типа поля. Это можно и лучше делать классами. Один тип поля - один класс.
После этого ты получишь инструментарий для создания формы.
Юзеру же просто предлагаешь выбрать нужные поля, и указать им тип из предлагаемых.
Он жмакает кнопочку, и ты
1. создаешь нужную таблицу.
2.а создаешь необходимые страницы с использованием классов, которые создал выше.
2.б или же создаешь класс формы, который в котором прописываешь использование этих полей.
ЗЫ: эту задачу можно решить и без генерирования кода. несколько сложнее получится. ну или сгенерированный код сделать несколько более гибким. я описал выше достаточно простой, но далеко не самый лучший вариант реализации.
Спустя 6 минут, 7 секунд (31.08.2009 - 10:37) ApuktaChehov написал(а):
Я все понял.
Я собираюсь писать систему управления предприятием, т.е. собираюсь ее улучшать, так как уже существует рабочий вариант, но он ОЧЕНЬ сильно ограничен и так же плохо написан.
Работа не малая. Но мне не страшно
Хочу пригласить вольных разработчиков для этого дела. Но позже. Для начала хочу начать и что то уже сделать, что бы было что показать, что обсудить.
Народу с одними идеями куча, а я хочу не только придумать но и реализовать.
Я собираюсь писать систему управления предприятием, т.е. собираюсь ее улучшать, так как уже существует рабочий вариант, но он ОЧЕНЬ сильно ограничен и так же плохо написан.
Работа не малая. Но мне не страшно
Хочу пригласить вольных разработчиков для этого дела. Но позже. Для начала хочу начать и что то уже сделать, что бы было что показать, что обсудить.
Народу с одними идеями куча, а я хочу не только придумать но и реализовать.
Спустя 24 минуты, 42 секунды (31.08.2009 - 11:01) Michael написал(а):
Ты хочешь сделать то, что уже сделано в 1С Предприятии.
Справишься?
Сотни фирм о таком уровне интерфейса годами безнадежно мечтают.
Недостаточно просто создать поле ввода данных и соответствующую ему
ячейку в БД. Нужно данные еще и обрабатывать - и при вводе пользователем,
и при занесении и т.д. К тому же связи между данными в реальности не просты.
PS
Такое сделано не только конечно в 1С, но те системы управления ОЧЕНЬ дорогие...
Справишься?
Сотни фирм о таком уровне интерфейса годами безнадежно мечтают.
Недостаточно просто создать поле ввода данных и соответствующую ему
ячейку в БД. Нужно данные еще и обрабатывать - и при вводе пользователем,
и при занесении и т.д. К тому же связи между данными в реальности не просты.
PS
Такое сделано не только конечно в 1С, но те системы управления ОЧЕНЬ дорогие...
Спустя 3 минуты (31.08.2009 - 11:04) Michael написал(а):
ApuktaChehov
Цитата |
так как уже существует рабочий вариант, но он ОЧЕНЬ сильно ограничен и так же плохо написан. |
Этот вариант что на PHP и MySQL написан?
И кем? Фирмой, человеком?
Спустя 3 минуты, 2 секунды (31.08.2009 - 11:08) ApuktaChehov написал(а):
Я все это понимаю. По этому хочу сделать опенсорс проэкт.
Я один? - нет, не справлюсь. Но начать могу, а там уже и интузиасты подключатся.
Мной написан. да на PHP и MySQL.
А сейчас я хочу совместить несколько технологий: PHP, PostrgreSQL, Ajax, JavaScript, CSS. В качестве платфнормы Apache на FreeBSD.
Я один? - нет, не справлюсь. Но начать могу, а там уже и интузиасты подключатся.
Мной написан. да на PHP и MySQL.
А сейчас я хочу совместить несколько технологий: PHP, PostrgreSQL, Ajax, JavaScript, CSS. В качестве платфнормы Apache на FreeBSD.
Спустя 13 минут, 21 секунда (31.08.2009 - 11:21) Michael написал(а):
Как программист АСУ искренне желаю тебе удачи.
Спустя 3 минуты, 39 секунд (31.08.2009 - 11:25) ApuktaChehov написал(а):
Спасибо большое!
Я ясно представляю себе как все это должно работать.
Сейчас я занимаюсь написанием ТЗ.
Позже зарегистрирую домен и открою сайт и форму. Приглашу туда всех кто заинтересован в этом деле.
Я ясно представляю себе как все это должно работать.
Сейчас я занимаюсь написанием ТЗ.
Позже зарегистрирую домен и открою сайт и форму. Приглашу туда всех кто заинтересован в этом деле.
Спустя 4 минуты, 9 секунд (31.08.2009 - 11:29) Michael написал(а):
Цитата |
Сейчас я занимаюсь написанием ТЗ |
Это самое главное - без хорошего проекта садиться писать
что-то сложное просто не серьезно.
Спустя 3 минуты, 56 секунд (31.08.2009 - 11:33) ApuktaChehov написал(а):
Поделюсь планами:
Ой, самое главное не сказал, это будет система управления полиграфическим предприятием.
Именно на это и ориентированная.
планирую писать в несколько этапов:
1.Управление контрагентами, материалами, продукцией.
2.Управление заказами
3.Разработка интерфейса.
4.Документация
5.Отчетность
6.Межпроизводственные связи
Это вкратце обовсем.
Ой, самое главное не сказал, это будет система управления полиграфическим предприятием.
Именно на это и ориентированная.
планирую писать в несколько этапов:
1.Управление контрагентами, материалами, продукцией.
2.Управление заказами
3.Разработка интерфейса.
4.Документация
5.Отчетность
6.Межпроизводственные связи
Это вкратце обовсем.
Спустя 1 час, 7 минут, 10 секунд (31.08.2009 - 12:40) Kerlyk написал(а):
Я бы с удовольствием поддержал и помог. Тема интересная. Широкий спектр задач - еще один плюс (огромная база для самосовершенствования в области web-программирования). Так что по любым вопросам в этот топик
Спустя 11 минут, 22 секунды (31.08.2009 - 12:51) FatCat написал(а):
Цитата (ApuktaChehov @ 31.08.2009 - 10:12) |
Соответственно скрипт сам создается нужную таблицу в SQL |
ИМХО, тут ошибка.
Проектируются 2 таблицы: в одной создаются группы, в другой хранятся сопоставленные данные.
В первой группе будет информация о стандартном наборе данных. Если пользователь добавляет новое поле или удаляет имеющееся, создается новая группа с описанием нового набора полей. Сами же пользовательские данные хранятся во второй таблице с данными. Для вывода таблицы джойнятся.
Спустя 29 минут, 35 секунд (31.08.2009 - 13:21) ApuktaChehov написал(а):
Цитата (FatCat @ 31.08.2009 - 09:51) |
ИМХО, тут ошибка. Проектируются 2 таблицы: в одной создаются группы, в другой хранятся сопоставленные данные. В первой группе будет информация о стандартном наборе данных. Если пользователь добавляет новое поле или удаляет имеющееся, создается новая группа с описанием нового набора полей. Сами же пользовательские данные хранятся во второй таблице с данными. Для вывода таблицы джойнятся. |
Естественно. Я не стал расписывать все как есть...
Спасибо за уточнение
Kerlyk я дам Вам знать, когда нчнется самое интересное
Спустя 3 часа, 36 минут, 57 секунд (31.08.2009 - 16:58) FatCat написал(а):
Цитата (ApuktaChehov @ 31.08.2009 - 14:21) |
Естественно. |
Для меня не естественно. Иногда приходится динамически и таблицы создавать, и структуру менять.
Например, для движка этого форума писал мультидоменность. При старте админки проверяется, есть ли таблица мультидомена, и если нет, то создается; если нет полей соответствующего домена, то создаются поля:
Листинг
PHP |
// +FatCat для мультидомена: проверяем, есть ли домен для логирования, и если нет - создаем: |
_____________