|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
Доброго времени суток! Занимаюсь проектом веб-приложения: толстый js-клиент, java и PostgreSQL на сервере. В базе постоянно появляются сущности, которые не умещаются в одну ТБД, так как у них есть общие атрибуты и есть специфичные. Разделять их вообще на разные БД нельзя, так как в других ТБД нужно на них ссылаться как на одну сущность (то есть ключ у них должен быть общий). В итоге все расползается на кучу ТБД. При этом на сервере нужно все это поддержать и свести к полиморфизму. А если нужно делать join таких ТБД, то это вообще ужас. Но без join можно обойтись, так как это можно делать на клиенте, благо современные JS-MVC-фреймворки позволяют это делать. Так жк много java-кода уходит в CRUD (БД-клиент). В связи с этим вопрос - может мне больше подойдет не РСУБД? А что-то из современных NoSQL хранилищ? Например, RIAK. У него как раз REST-интерфейс и гибкая схема данных. Проблема еще в том, что у меня больше нагрузка на запись, чем на чтение. А такие БД, как я где-то читал, больше рассчитаны как раз на чтение. Подскажите, как можно упростить жизнь с используемой БД и есть ли смысл мигрировать в сторону NoSQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2012, 10:43 |
|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
> Занимаюсь проектом веб-приложения: толстый js-клиент, java и PostgreSQL на сервере. > В базе постоянно появляются сущности, которые не умещаются в одну ТБД, так как у Что такое ТБД ? Таблица базы данных ? > них есть общие атрибуты и есть специфичные. Разделять их вообще на разные БД > нельзя, так как в других ТБД нужно на них ссылаться как на одну сущность (то > есть ключ у них должен быть общий). Hibernate, как ни странн, поддерживает наследование. В 3 или 5 видах. Выбери один, используй... (я почему-то решил, что ты используешь Hibernate, почему --и сам не знаю, но если не исползушь -- стоит попробовать). В итоге все расползается на кучу ТБД. При > этом на сервере нужно все это поддержать и свести к полиморфизму. Ну и в чём проблема ? А если нужно > делать join таких ТБД, то это вообще ужас. Ой, испугал ежа голым задом. ДЛя СУБД JOIN сделать по FK-PK -- вообще не проблема. Но без join можно обойтись, так как > это можно делать на клиенте, благо современные JS-MVC-фреймворки позволяют это > делать. Делать JOIN-ы не в БД -- идиотизм верхней степени. СУБД это делает очень хорошо, а вот всё остальное -- очень НЕ хорошо. Так жк много java-кода уходит в CRUD (БД-клиент). Hibernate лечит CRUD-ы до состояния "вообще ничего делать не надо", ты говоришь -- хочу загрузить объект такой =то (PK) или хочу сохранить объект такой-то. > В связи с этим вопрос - может мне больше подойдет не РСУБД? А что-то из > современных NoSQL хранилищ? Например, RIAK. У него как раз REST-интерфейс и > гибкая схема данных. Пока ты не нашёл чёткого мотива, по которому тебе нельзя применять реляционные СУБД, я думаю, не стоит даже думать об этом. Подозреваю, что ты не очень умееш "готовить" даже достаточно простые РСУБД, поэтому и проблемы. > Проблема еще в том, что у меня больше нагрузка на запись, чем на чтение. А такие > БД, как я где-то читал, больше рассчитаны как раз на чтение. Не SQL БД бывают разные наверное, как и РСУБД. Одни -- на запись, другие -- на чтение. > Подскажите, как можно упростить жизнь с используемой БД и есть ли смысл > мигрировать в сторону NoSQL? Используй Hibernate и наследование его. Просто сам Д прописал... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2012, 11:23 |
|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
MasterZiv но если не исползушь -- стоит попробовать И прослезиться глядя на его ущербный HQL ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2012, 12:03 |
|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
> И прослезиться глядя на его ущербный HQL Ты хочешь поговорить об этом? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2012, 16:18 |
|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
MasterZiv > И прослезиться глядя на его ущербный HQL Ты хочешь поговорить об этом? Если покажешь, как с помощью HQL сделать запрос с CTE, то разговоры будут излишни, ну а если не покажешь, то тоже, в принципе. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2012, 17:08 |
|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
А с помощью Hibernate можно работать с массивами (у меня Postgres) и вообще определять свои связки dbType-javaType? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 09:28 |
|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
> А с помощью Hibernate можно работать с массивами (у меня Postgres) В РСУБД нет массивов, поэтому подозреваю, что нельзя. Но может быть и можно определить свой мапинг. Вообще Hib расширяемый. и вообще > определять свои связки dbType-javaType? Вообще -- можно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 13:18 |
|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
MasterZivВ РСУБД нет массивов, поэтомупоэтому постгрес - не РСУБД ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 19:07 |
|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
> В РСУБД нет массивов, поэтому > > поэтому постгрес - не РСУБД PG -- субд, и реляционная, только Hib поддерживает наименьшее общее кратное из возможнойтей всех субд. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 23:40 |
|
БД для веб-приложения
|
|||
---|---|---|---|
#18+
MasterZiv > В РСУБД нет массивов, поэтому > > поэтому постгрес - не РСУБД PG -- субд, и реляционная, только Hib поддерживает наименьшее общее кратное из возможнойтей всех субд. Скорее он поддерживает то, на что хватило знаний у его разработчиков. Например про union им никто не рассказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2012, 09:40 |
|
|
start [/forum/topic.php?fid=35&msg=37920321&tid=1552530]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 8ms |
total: | 106ms |
0 / 0 |