The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Как и чем выставить БД в веб в стиле минимализма?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Поиск и настройка типовых скриптов)
Изначальное сообщение [ Отслеживать ]

"Как и чем выставить БД в веб в стиле минимализма?"  +/
Сообщение от AA_suited (ok), 24-Окт-21, 01:32 
Важно: я не ищу альтернативу phpMyAdmin, так как SQL DDL предполагается держать в файлах, а не конструировать в стиле phpMyAdmin через веб-интерфейс!

Как назвать искомое мной -- прямо не знаю, ну пусть это будет скрипт.

Язык программирования скрипта не очень важен -- даже и Хаскель пойдет. Но если будет выбор, то лучше все же что-то привычное: С++/java/C#/С (именно с такими приоритетами).

Пример: возможность зайти на урл вроде такого:


http://example.com/db?action=edit&token=mysecret&SQL=select&...

Результат: если токен подходящий (т.е. соответствует авторизованному пользователю, и у пользователя есть права на доступ к id=123), то скрипт  выдаёт страницу, в которой все поля записи показываются, причем каждое в своем виджете (например, если какое-то текстовое поле означает адрес картинки, то показывается эта картинка, а не текст). Далее пользователь может отредактировать и сохранить запись.

Если же токен неподходящий, то скрипт выдает соответствующие страницы ошибок (желательно кастомизируемые).

Что неприемлемо: если инфа о соответствии виджетов полям будет хранится языково-зависимым образом, например в виде исходного текста с определением кучи классов на языке скрипта (однако реализация виджетов в скрипте будет на языке скрипта -- а как же иначе?). В остальном вопрос "как определяется виджет для поля" скрипт решает сам, например, беря (поле, таблица,базы_данных, имя_виджета) из таблицы БД, или из json, или же, прости меня Макаронный Монстр, из xml-файла.

Пример как неприемлемо:


class mydb::mytable::myfield1: public db_image { };
class mydb::mytable::myfield2: public db_text { };
class mydb::mytable::myfield3: public db_number { };

Пример как можно:


<widgets>
<assign db="mydb" table="mytable" field="myfield1" widget="db_image" />
<assign db="mydb" table="mytable" field="myfield2" widget="db_text" />
<assign db="mydb" table="mytable" field="myfield3" widget="db_number" />
</widgets>


Перечислю фичи:

1. Виджеты ко всем полям с возможностью показа и редактирования. В том числе виджеты для таблиц с отношением "внешний ключ".

2. Шаблоны страниц, но не слишком сложные, или, альтернативно, вызов функции полноценного ЯП для формирования страницы из виджетов.

3. Аутентификация/авторизация (юзера, пароли, токены, права, роли) -- или хотя бы только токены.

4. Файлы (можно хранить в БД или ФС по выбору библиотеки); желательно удаление по счётчику ссылок на них =0.

Замечания:

1. Роутинг и другие вещи полезны, но не входят в понятие "минимализм".

2. Токен, понятно, лучше передавать кукой, но в гет-параметрах он тоже должен восприниматься.

3. Создавать/удалять токены, регистрировать юзеров и т.п. скрипт не обязан. Он должн только знать, откуда их брать, и как их проверять.

4. Тут на самом деле ещё кое-какие проектировочные решения должны быть (например, как быть с виджетами на несколько полей), но это не принципиально.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от ыы (?), 24-Окт-21, 19:37   +/
> Как назвать искомое мной -- прямо не знаю, ну пусть это будет скрипт.

Это называется CRUD  https://yandex.ru/search/?text=crud

Берете подходящий скрипт и дописываете под свои хотелки.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2

2. Сообщение от AA_suited (ok), 24-Окт-21, 20:09   +/
> Это называется CRUD  https://yandex.ru/search/?text=crud

Нет. CRUD это фича номер 0, настолько очевидная, что я ее в список фич не внес.

> Берете подходящий скрипт и дописываете под свои хотелки.

Да я могу и с нуля написать на плюсах, но зачем изобретать велосипед?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру