powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сравнение концепций проектирования
23 сообщений из 23, страница 1 из 1
Сравнение концепций проектирования
    #36585787
MaxiStyle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При разработке нового проекта возникла дилема между двумя концепциями проектирования:
проект строится на oracle+apache+php
Концепции:
1. Данные и логика в базе, php только для вывода html. Переменные авторизыции при этом в контексте. В представлениях на основе контекста определям кому из пользователей что показывать. PHP работает только с представлениями.
плюсы:
+ админу БД легче живется, вся логика под рукой, можно исправить любой запрос, подправив представление.
+ экономим время на построении плана запроса за счет использования представлений
минусы:
- разработчику надо парится с переносом всей логики в БД, никакие "костыли" и "заплатки" практически не возможны
- на каждый запрос придется писать представление и легко запутаться в их большом количестве
- возможное не правильно использование представлений: когда нужна только одна таблица, а берется представление из нескольких таблиц.

2. В БД данные (нормализованные, со всеми возможными FK) и часть логики, основная логика в PHP
плюсы:
+ разработка логики проще
+ для исправлении логики часто нужно исправить только код в php
+ не используются лишние соединения таблиц
минусы:
- возможна куча заплаток и из-за этого трудность разбора логики
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36585982
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxiStyleПри разработке нового проекта возникла дилема между двумя концепциями проектирования:
проект строится на oracle+apache+php
Концепции:
1) разработчику надо парится с переносом всей логики в БД, никакие "костыли" и "заплатки" практически не возможны
2) - на каждый запрос придется писать представление и легко запутаться в их большом количестве
3) - возможное не правильно использование представлений: когда нужна только одна таблица, а берется представление из нескольких таблиц.

1) попарится один раз, ниче с ним не случится.
2) В реальном мире как-то чаще оперируют большим кол-вом ХП,а не View, не знаю, чем обусловлен ваш выбор. Большое кол-во - это сколько для вас?
3) Этот пункт вообще не понятен... Неправильно можно что-то использовать, только если руки кривые!

Совет: как можно больше логики на сервер. Централизация рулит, даже если это веба. Другое дело, что не стоит делать на сервере то, для чего он не предназначен(прим.:сложные мат. вычисления)...
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36590480
MaxiStyle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Megabyte :
1) париться придется всегда, т.к. проект модульный и постоянно будет дорабатываться.
2) будет около 400 таблиц, представлений думаю будет не менее 1000.
3) не правильно это когда лень заглядывать в код вьюшки, чтоб проверить на наличие не нужных таблиц. например во вьюшке соединение 4 таблиц - например выгребается инфо клиента фио, адрес, место работы, телефон. в конкретном случае нужно только фио и телефон, в итоге если пользоваться вьюшкой, то идет лишнее соединение 2-х таблиц.

по совету: ну ведь логика все равно будет на сервере, либо в PHP (как мне кажется легче), либо в БД. Ну сложные мат вычисления врядли понадобятся, а вот работа со строками - форматирование регулярками, поиск подстрок и т.п. часто.

Вообще интересует опыт использования 1-го метода, когда вся-вся логика в БД.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36590492
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> будет около 400 таблиц, представлений думаю будет не менее 1000
Странная пропорция.
Какая предметная область ?
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36590873
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxiStyle2 Megabyte :
1) париться придется всегда, т.к. проект модульный и постоянно будет дорабатываться.
2) будет около 400 таблиц, представлений думаю будет не менее 1000.
3) не правильно это когда лень заглядывать в код вьюшки, чтоб проверить на наличие не нужных таблиц. например во вьюшке соединение 4 таблиц - например выгребается инфо клиента фио, адрес, место работы, телефон. в конкретном случае нужно только фио и телефон, в итоге если пользоваться вьюшкой, то идет лишнее соединение 2-х таблиц.

по совету: ну ведь логика все равно будет на сервере, либо в PHP (как мне кажется легче), либо в БД. Ну сложные мат вычисления врядли понадобятся, а вот работа со строками - форматирование регулярками, поиск подстрок и т.п. часто.

4) Вообще интересует опыт использования 1-го метода, когда вся-вся логика в БД.
1) Заранее проектируйте так, чтобы можно было развивать структуру БД. От нее все приложение будет плясать.
2) П-Л>> будет около 400 таблиц, представлений думаю будет не менее 1000
Странная пропорция.
Какая предметная область ?
Согласен. Не проще ли будет ХП с параметрами, ну или даже View с разным условием WHERE...
3) Конечно важно не тащить лишнюю инфу на клиента, но не надо делать из этого идеологию.
Проектируйте правильно, разбивайте на сущности.
4) Так делают все нормальные люди. Ибо одна и та же БД, в идеале, может использоваться для разных приложений и по разному назначению.

з.ы. главное, если плохо в этом разбираетесь, почитайте про грамотное проектирование БД, нормализацию и т.п.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36592633
MaxiStyle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предметная область - Банк. Приложение - глобальный CRM.

Ну с нормализацией-то все понятно - она должна быть 100%, и сущьности тоже должны быть.

Вопрос в вследующем, стоит ли всю-всю логику перетаскивать в БД. Т.е. стоит ли вводить идеологию: все работы в БД и жесткие правила на запрет прямого доступа к таблицам, а только через представления?
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36593788
Фотография Dinamo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxiStyleПредметная область - Банк. Приложение - глобальный CRM.

Ну с нормализацией-то все понятно - она должна быть 100%, и сущьности тоже должны быть.

Вопрос в вследующем, стоит ли всю-всю логику перетаскивать в БД. Т.е. стоит ли вводить идеологию: все работы в БД и жесткие правила на запрет прямого доступа к таблицам, а только через представления?
Думаю что стоит не забудьте что с 01.01.2011 вступает в силу федеральный закон о защите персональных данных, придется писать в базу кто когда к каким данным получал доступ.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36593859
arvt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sorry за офтоп
Dinamo, Можете подсказать в какой статье в законе это прописано, а то прочитал этот закон и почти ничего не понял
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36594076
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
MaxiStyleПредметная область - Банк. Приложение - глобальный CRM.

Ну с нормализацией-то все понятно - она должна быть 100%, и сущьности тоже должны быть.

Вопрос в вследующем, стоит ли всю-всю логику перетаскивать в БД. Т.е. стоит ли вводить идеологию: все работы в БД и жесткие правила на запрет прямого доступа к таблицам, а только через представления?
К представлениям тоже закрыть доступ. Все только через ХП
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36594086
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2К представлениям тоже закрыть доступ. Все только через ХП +1
золотые слова
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36594501
Фотография Dinamo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arvtsorry за офтоп
Dinamo, Можете подсказать в какой статье в законе это прописано, а то прочитал этот закон и почти ничего не понял
Конечно в явном виде в законе этого нет. Но это логика развития системы в которой обеспечивается должный уровень контроля за персональными данным.
Например обнаружится что произошла утечка персональных данных некого лица.
Он пишет жалобу в контролирующий орган, что мол вот я этим давал свои данные, а они их не сохранили.
К вам приходит проверка.
Вы проводите разбирательство, анализируете Ваши логи и выясняете кто имел доступ к этой информации и принимаете меры.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36595535
MaxiStyle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу закана я думаю, что контролеры не будут разбираться кто именно из сотрудников имел доступ, а накажут всю организацию. А сотрудниками будет заниматься внутренняя служба безопасности, и на её головняки мне пофигю. Но в люом случае я с вероятностью в 70% могу сказать кто месяц назад какие данные получил по логам апача и набору атрибутов у пользователя в базе. Если срок больше месяца, то могут быть проблемы с этим.

В тему. Что такое ХП? Процедуры? А зачем? Представлений вполне достаточно что даже разным пользователям выдавать разные данные на основе, например, содержимого контекста (если говорить об Oracle).

И чем все же обосновано не работать с таблицами напрямую?
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36595908
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxiStyle,

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

а по поводу сабжа - моё ИМХО - обязательно логика на БД. Обязательно. банк и ЦРМ. не только Ваше php будет работать с этой системой. скорее всего, если это внедрят, то понадобиться "отдавать" данные другим внутренним приложениям. и как вы это будете делать? через php?
БД не есть только хранилище.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36596327
MaxiStyle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наутилус,

Спасибо, убедительно.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36600037
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Более 3 000 процедур/функций, порядка 1000 триггеров ни одного представления.
2. Все пользователи (включая администраторов) работают под "общим пользователем" обладающим правами на выполнение минимально необходимого набора процедур/функций.
3. Собственная система контроля доступа (пользователи, группы, наследование... Novell + Win), с возможностью контролировать доступ к пересечениям строка - столбец.
И т.д.
Вся логика на сервере, в основном все клиенты - тонкие.
В промышленной эксплуатации несколько лет.
Все довольны.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36601628
Kew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А насколько сложная логика-то? Есть ли опасность упереться в ограничения одного сервера БД: количество одновременных сессий со свими сессионными кэшами, перерасход памяти сложными обработками данных и т.п. и т.д.? Если есть, стоит подумать о выносе логики на аппсервер (этот самый апач+пхп) и подумать о возможном будущем развертывании второго, третьего и далее. Иначе разницы почти никакой нет.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36602082
MaxiStyle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kew,
я тоже думаю, что апач+php логику разруливает быстрее...
а вот ораклисты со мной не согласны, да и кластеры тоже и для БД можно сделать.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36602157
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxiStyle,

это всё сильно зависит от того какая логика.
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36602178
exST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
раз Оракал - первый вариант =) думаю ясно почему =)
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36604248
Kew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxiStyleKew,
я тоже думаю, что апач+php логику разруливает быстрее...
а вот ораклисты со мной не согласны, да и кластеры тоже и для БД можно сделать.
Если задача (алгоритм, план запроса/транзакции) принципиально не параллелится, то и кластер этот будет как собаке пятая нога -- только пустатя трата времени на согласование работы нод. И сколько будет стоить рак, эти ораклисты упоминали? :)

Хотя, выразительные средства языков оракла и возможности интеграции с внешним кодом позволяют сделать (в практическом смысле) все, так что ораклисты в части возможности реализации логики не сильно ошибаются. :)
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36605580
MaxiStyle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мои выводы:
100% ответа нет, но большинство доводов в пользу того, что б реализовывать все в БД, а веб серевер только для выдачи данных. К тому же привели положительные примеры.
Так и буду делать... хотя думаю все равно появятся "костыли/заплатки" на PHP, если будет что-то проблематично реализовывать по логике в БД :)
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36608843
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
MaxiStyle
Так и буду делать... хотя думаю все равно появятся "костыли/заплатки" на PHP, если будет что-то проблематично реализовывать по логике в БД :)
Я полагаю, что они могут появиться только от недостаточных знаний разработчика
...
Рейтинг: 0 / 0
Сравнение концепций проектирования
    #36642774
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2 +255
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сравнение концепций проектирования
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]