172 похожих чатов

Смешивать таблицы и объекты - плохая идея, в первую очередь

потому что на практике реальный объект описывается комбинацией разных таблиц, и клиенту совершенно не интересно как он хранится в бд и почему именно так, как его туда сохранять. Это только в простых и маленьких ис можно напрямую мапить объекты вроде юзера на таблицы. У меня например юзер это десяток разных таблиц. И когда клиент споашивает, он вполне комфортно сшивается и отдается. А когда нужна часть юзера - отдается или меняется эта часть, другая даже не блокируется. Инкапсуляция хранения структуры внутри бд, и влияния логики изменения юзера на другие таблицы, полиморфизм юзеров, наследование через добавление свойств и методов доступа к новым типам юзеров. Кажется это и называется ооп, не так ли? Попытка натянуть ооп непосредственно на таблицы приводит новичков к хранению json полей, со всеми вытекающими побочными эффектами.

17 ответов

7 просмотров

Не, это ответ в общем, но надо инкапсулировать на уровне БД. Я с этим не согласен, я думаю что инкапсуляция должны быть на более высоком уровне, чтобы обеспечить переносимость на другие БД. Но вопрос бы не про это. Вот вы ракладываете вашего кастомера по куче таблиц строго следуя реляционной модели. Но PG поддерживает и ОО. Т.е. вообще говоря, если правильно описать типы, можно все атрибуты юзера сохранить в одной таблице. Т.е чисто замапить OO модель на БД. В NoSQL так и делают, к слову. И гордятся этим 😊. Так вот и вопрос: где нибудь эти фичи PG используются как основа архитекруты или они на самом деле лишние?

Spoon Boy
Не, это ответ в общем, но надо инкапсулировать на ...

чтобы обеспечить переносимость на другие БД чего?

D- Автор вопроса
Spoon Boy
Не, это ответ в общем, но надо инкапсулировать на ...

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

D
я еще не видел чтобы кому-то понадобилась переноси...

Любая современная большая система дает выбор поддерживаемых СУБД. Пример - SAP

D- Автор вопроса
Spoon Boy
Любая современная большая система дает выбор подде...

нет, вообще нет. В жизни это совершенно не так. Поддерживать две субд - это значит не поддерживать полностью ни одну из них. В результате получается 1с, сап или пхп-фреймворк для сайтов о литых дисках

D
нет, вообще нет. В жизни это совершенно не так. По...

Вы мне про жизнь хотите рассказать? Я занимаюсь внедрениями лет 30 на всяких случай и опыта с энтерпрайзами у меня весьма немало. Сейчас все серьезные поставщики предлагают несколько поддерживаемых ДБ на выбор. Понятно, что если речь не идет о софте от самих производителей ДВ.

D
я еще не видел чтобы кому-то понадобилась переноси...

А как же богомерзкая 1С? Коммерческие тиражируемые системы, как ни странно, таки имеют поддержку далеко не одной СУБД. Грамотно спроектированные - по через функциональный АПИ, более другие - по через известное в России место (выходное отверстие ЖКТ).

D
нет, вообще нет. В жизни это совершенно не так. По...

А, ну раз вы ставите в один ряд SAP и "пхп-фреймворк для сайтов о литых дисках" то вообщем уровень осведомленности зашкаливает.

D- Автор вопроса

внедрением чего, сапа?)

central hardware
Например?

Я же чуть выше ответил

D
внедрением чего, сапа?)

Вас чем-то обидел сап?

D- Автор вопроса
Spoon Boy
А, ну раз вы ставите в один ряд SAP и "пхп-фреймво...

я ставлю в один ряд любую систему, которая может работать на ноутбуке главбуха. Не важно что это, для них достаточно даже склайта.

D
я ставлю в один ряд любую систему, которая может р...

Гхм. Вы запускали SAP на ноутбуке? Это какой-же нужен ноутбук, однако 😊. Дружище, у них там по минимуму кластер из нескольких серверов.

D- Автор вопроса
Spoon Boy
Гхм. Вы запускали SAP на ноутбуке? Это какой-же ну...

очевидно, потому что логика сделана непонятно где, вместо эффективных хранимок, а возможности субд сводятся к хранилищу данных :)

D
очевидно, потому что логика сделана непонятно где,...

Слушайте, я так много узнаю. SAP - неправильная архитектура. Наследование в ООП - это антипатерн. Я уже понял все с вами. Не могли бы вы пожалуйста не засорять своим бредом чат?

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Подскажите, есть какие-то события создания/уничтожения у TFrame по типу TForm (OnCreate и OnClose/OnDestroy) ? Как отловить создание TFrame и "перед" уничтожением. На Tframe р...
Денис
8
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
а чем хуже?
Alexey Kulakov
10
Карта сайта