Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 БД для веб-приложения  [new]
ares4322
Member

Откуда:
Сообщений: 74
Доброго времени суток!
Занимаюсь проектом веб-приложения: толстый js-клиент, java и PostgreSQL на сервере.
В базе постоянно появляются сущности, которые не умещаются в одну ТБД, так как у них есть общие атрибуты и есть специфичные. Разделять их вообще на разные БД нельзя, так как в других ТБД нужно на них ссылаться как на одну сущность (то есть ключ у них должен быть общий). В итоге все расползается на кучу ТБД. При этом на сервере нужно все это поддержать и свести к полиморфизму. А если нужно делать join таких ТБД, то это вообще ужас. Но без join можно обойтись, так как это можно делать на клиенте, благо современные JS-MVC-фреймворки позволяют это делать. Так жк много java-кода уходит в CRUD (БД-клиент).
В связи с этим вопрос - может мне больше подойдет не РСУБД? А что-то из современных NoSQL хранилищ? Например, RIAK. У него как раз REST-интерфейс и гибкая схема данных.
Проблема еще в том, что у меня больше нагрузка на запись, чем на чтение. А такие БД, как я где-то читал, больше рассчитаны как раз на чтение.
Подскажите, как можно упростить жизнь с используемой БД и есть ли смысл мигрировать в сторону NoSQL?
15 авг 12, 10:43    [13013235]     Ответить | Цитировать Сообщить модератору
 Re: БД для веб-приложения  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709


> Занимаюсь проектом веб-приложения: толстый 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 авг 12, 11:23    [13013489]     Ответить | Цитировать Сообщить модератору
 Re: БД для веб-приложения  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
MasterZiv
но если не исползушь -- стоит попробовать

И прослезиться глядя на его ущербный HQL
15 авг 12, 12:03    [13013808]     Ответить | Цитировать Сообщить модератору
 Re: БД для веб-приложения  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709


> И прослезиться глядя на его ущербный HQL

Ты хочешь поговорить об этом?

Posted via ActualForum NNTP Server 1.5

15 авг 12, 16:18    [13015952]     Ответить | Цитировать Сообщить модератору
 Re: БД для веб-приложения  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
MasterZiv

> И прослезиться глядя на его ущербный HQL

Ты хочешь поговорить об этом?



Если покажешь, как с помощью HQL сделать запрос с CTE, то разговоры будут излишни, ну а если не покажешь, то тоже, в принципе.
15 авг 12, 17:08    [13016387]     Ответить | Цитировать Сообщить модератору
 Re: БД для веб-приложения  [new]
ares4322
Member

Откуда:
Сообщений: 74
А с помощью Hibernate можно работать с массивами (у меня Postgres) и вообще определять свои связки dbType-javaType?
17 авг 12, 09:28    [13024492]     Ответить | Цитировать Сообщить модератору
 Re: БД для веб-приложения  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

> А с помощью Hibernate можно работать с массивами (у меня Postgres)

В РСУБД нет массивов, поэтому подозреваю, что нельзя.
Но может быть и можно определить свой мапинг. Вообще Hib расширяемый.

и вообще
> определять свои связки dbType-javaType?

Вообще -- можно.

Posted via ActualForum NNTP Server 1.5

17 авг 12, 13:18    [13026258]     Ответить | Цитировать Сообщить модератору
 Re: БД для веб-приложения  [new]
tanglir
Member

Откуда:
Сообщений: 28966
MasterZiv
В РСУБД нет массивов, поэтому
поэтому постгрес - не РСУБД
17 авг 12, 19:07    [13028713]     Ответить | Цитировать Сообщить модератору
 Re: БД для веб-приложения  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709


> В РСУБД нет массивов, поэтому
>
> поэтому постгрес - не РСУБД

PG -- субд, и реляционная, только Hib поддерживает
наименьшее общее кратное из возможнойтей всех субд.

Posted via ActualForum NNTP Server 1.5

17 авг 12, 23:40    [13029534]     Ответить | Цитировать Сообщить модератору
 Re: БД для веб-приложения  [new]
FreemanZAV
Member

Откуда:
Сообщений: 2434
MasterZiv

> В РСУБД нет массивов, поэтому
>
> поэтому постгрес - не РСУБД

PG -- субд, и реляционная, только Hib поддерживает
наименьшее общее кратное из возможнойтей всех субд.


Скорее он поддерживает то, на что хватило знаний у его разработчиков. Например про union им никто не рассказал.
20 авг 12, 09:40    [13035152]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить