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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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