powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Выбор базы данных для Java EE приложения
25 сообщений из 78, страница 2 из 4
Выбор базы данных для Java EE приложения
    #39756193
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklop,
если есть работающая система - сайты, то у них ест своя субд - почему не использовать её?
а почему не использовать то, что лучше знаешь?
ведь система чатов не сложная, и любая субд потянет.

Кхм. кто даст доступ к своей инфе, особенно к такой инфе как бд. Смешно просто.? это раз. Второе. Зачем мне это? мне нужна инфа по клиенту. Мне не нужно знать его логин на сайте и т.д.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756194
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНе нужна вообще реляционка. Вот ни разу не нужна.
То бишь по сути и монга подойдет?
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756196
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopmaytonНе нужна вообще реляционка. Вот ни разу не нужна.
То бишь по сути и монга подойдет?
Монга хранит Документы? Что в твоей системе будет являтся документом? 1 Месседж? Или 1 чят-комната?
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756197
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonМонга хранит Документы? Что в твоей системе будет являтся документом? 1 Месседж? Или 1 чят-комната?
Ну. будут храниться операторы, сайты. Будут храниться чаты в отдельном документе, а сообщения (отдельный документ) будут связаны с конкретным чатом по средству связи.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756206
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopmaytonМонга хранит Документы? Что в твоей системе будет являтся документом? 1 Месседж? Или 1 чят-комната?
Ну. будут храниться операторы, сайты. Будут храниться чаты в отдельном документе, а сообщения (отдельный документ) будут связаны с конкретным чатом по средству связи.
Что-то сильно много всего. Скажем так. Допустим что система готова. И она - на реляционке (SQL).

И как будет выглядеть самый горячий SQL-запрос к вашей БД?

Код: java
1.
SELECT * ......


?

Вот если вы ответите на этот вопрос то и мы (я) и другие члены форума очень быстро помогут вам выбрать DBMS.

Если нет - то бох его знает. Неопределенность....
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756226
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopКхм. кто даст доступ к своей инфе, особенно к такой инфе как бд.
TsyklopЭто чат онлайн поддержки. С операторами и клиентами. Скриптик встраивается на сайт и получается чат онлайн поддержки.как минимум надо знать id клиента.


TsyklopКхм. кто даст доступ к своей инфе, особенно к такой инфе как бд.права доступа - известно про такое?
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756229
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадякак минимум надо знать id клиента.
В моей системе будет свой id клиента. тот который у сайта в бд мне все равно.

вадяправа доступа - известно про такое?
Кхм. кто будет писать доп апи для такого? кто будет тратить на такое время и деньги. не слышали?
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756235
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

тебе потребуется 3 таблицы
справочник клиентов
справочник операторов
таблица чатов

какая проблема с выбором субд?
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756237
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЕсли нет - то бох его знает. Неопределенность....

К примеру такой:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT c.*,
       IF(d.id, 'true', IF(c.operator_id < 0, 'true', 'false'))             AS dispatch,
       IF(r.id, 'true', 'false')                                            AS redirected,
       IF(c.guest = 0, u.avatar, NULL)                                      AS avatar,
       IF(c.operator_id > 0, CONCAT(op.firstname, ' ', op.lastname), '- -') AS operator,
       IF(c.operator_id > 0, op.avatar, '')                                 AS operatorAvatar,
       IF(r.id, 'true', 'false')                                            AS redirected,
       IF(r.fromId = ?, 'true', 'false')                                    AS redirectedFrom,
       IF(r.toId = ?, 'true', 'false')                                      AS redirectedTo
FROM chat AS c
       LEFT JOIN dispatch AS d ON d.chat_id = c.id
       LEFT JOIN `user` AS op ON op.id = c.operator_id
       LEFT JOIN `user` AS u ON u.id = c.client_id
       LEFT JOIN guest AS g ON g.id = c.client_id
       LEFT JOIN redirect AS r ON r.chatId = c.id AND r.toId = ? AND r.submit = 0 AND r.cancel = 0
WHERE c.id = ?
  AND c.site_id = ?



Еще такой:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT s.id                                                                 AS id,
       SUM((SELECT IF(COUNT(*) > 0, 1, 0) AS unread
            FROM message AS m
            WHERE m.chat_id = c.id AND m.status = 0 AND m.type = 'CLIENT')) AS unread
FROM chat AS c
       LEFT JOIN site AS s ON s.id = c.site_id
       LEFT JOIN operator AS op ON op.user_id = ?
WHERE c.complete = 0
  AND ((s.userId = ? AND c.site_id = s.id) OR (op.id > 0 AND c.site_id = op.site_id))
GROUP BY id
ORDER BY id ASC;



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT DISTINCT c.id
FROM message AS ct
       LEFT JOIN chat AS c
                 ON c.id = ct.chat_id AND (c.operator_id = ? OR c.operator_id = -1)
       LEFT JOIN dispatch AS d ON d.site_id = 1 AND d.chat_id = c.id AND d.user_id = ?
WHERE ct.type = 'CLIENT'
  AND ct.status = 0
  AND c.site_id = ?
  AND c.complete = 0
  AND (c.operator_id = ? OR (c.operator_id = -1 AND d.id > 0));



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT c.id                   AS id,
       (SELECT COUNT(*)
        FROM message AS ctu
        WHERE ctu.chat_id = c.id
          AND ctu.type = 'CLIENT'
          AND ctu.status = 0) AS unread
FROM chat AS c
       LEFT JOIN dispatch AS d ON d.chat_id = c.id
WHERE c.site_id = ?
  AND (c.operator_id = ? OR c.operator_id = -1)
GROUP BY c.id;



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT m.*,
       IF(f.id > 0, 'true', 'false') AS file,
       f.id                          AS fileId,
       f.type                        AS fileType,
       f.name                        AS fileName,
       f.path                        AS filePath,
       c.site_id                     AS siteId,
       m.chat_id                     AS chatId
FROM message AS m
       LEFT JOIN chat AS c ON c.id = m.chat_id
       LEFT JOIN file AS f ON f.id = m.file_id
WHERE m.chat_id = ?;
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756239
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklop,

тебе потребуется 3 таблицы
справочник клиентов
справочник операторов
таблица чатов

какая проблема с выбором субд?

Нет, больше. Таблица для: самих клиентов, операторов, прав доступа для оператора, чатов, сообщений чатов, информации по клиенту (какой экран ОС и и т.д.), сайтов, настроек сайта. Вот так вот.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756246
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут капец все неправильно. Если проектируется система с быстрым откликом (чят) то там не должно
быть никаких count(*), distinct.

Это всё операторы которые линейно зависят от объема данных. Маленькие таблички - быстрый ответ.
Таблички подросли - система умерла.

Вобщем дорогой мой Циклоп я не знаю что сказать. Но если-бы фейсбук проектировался как запросы
к реляционке да еще и таким образом то он не вышел бы в релиз никогда.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756248
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

Код: sql
1.
 AND m.type = 'CLIENT'



Код: sql
1.
2.
3.
       IF(r.id, 'true', 'false')                                            AS redirected,
       IF(r.fromId = ?, 'true', 'false')                                    AS redirectedFrom,
       IF(r.toId = ?, 'true', 'false') 



Код: sql
1.
SELECT m.*,



при этом о каком быстродействии говорить? и не только о работе базы , но и всей системы.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756249
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и еще. Читать про CQRS. Обязательно.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756252
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonТут капец все неправильно. Если проектируется система с быстрым откликом (чят) то там не должно
быть никаких count(*), distinct.

Это всё операторы которые линейно зависят от объема данных. Маленькие таблички - быстрый ответ.
Таблички подросли - система умерла.

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

это писалось давно. И без всякий спрингов и хиберов. все на чистом jdbc. Сейчас все как бы по другому будет.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756253
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяпри этом о каком быстродействии говорить? и не только о работе базы , но и всей системы.

Ибо это писалось для чистого jdbc. Без спрингов и хиберов. посему было так. И писалось это пару лет назад. Сейчас же все иначе будет.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756255
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonДа и еще. Читать про CQRS. Обязательно.
Почитал. Слабо представляю его применение тут.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756256
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, Может приведете пример?
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756258
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopmaytonТут капец все неправильно. Если проектируется система с быстрым откликом (чят) то там не должно
быть никаких count(*), distinct.

Это всё операторы которые линейно зависят от объема данных. Маленькие таблички - быстрый ответ.
Таблички подросли - система умерла.

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

это писалось давно. И без всякий спрингов и хиберов. все на чистом jdbc. Сейчас все как бы по другому будет.
Я не против чистого jdbc.

Тебе надо сделать 1 большую таблицу messages. Денормализовать все ее внешние ключи. Это значит физически
их туда скопировать. Чаты и файлы тоже туда влить.

Сделать 1 поисковый ключ. chat_id. Проиндексировать. И партицировать по датам например. Это будет нужно
для удаления в архив истории.

Execution plan должен содержать 1 табличку и 1 индекс.

Все 99% запросов должны брать данные из нее.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756260
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopИбо это писалось для чистого jdbc. Без спрингов и хиберов. посему было так. И писалось это пару лет назад. Сейчас же все иначе будет.тогда вообще странно кто это писал....
сплошные тормозные операторы.
а вот за это
Код: sql
1.
IF(r.fromId = ?, 'true', 'false') 


надо руки отрывать
это сделано явно для анализа в коде. а передавать для if стринги - это супер.

maytonТебе надо сделать 1 большую таблицу messages. Денормализовать все ее внешние ключи. Это значит физически
их туда скопировать. Чаты и файлы тоже туда влить.ну это вопрос спорный...

пока нет конкретного тз что хочется получить в итоге
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756269
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petro не хватает, чтобы систему сделать правильной.

Да-да, к ораклу ее не хватает еще про cqrs почитать.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756461
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не нужен полнотекстовый поиск, то почти любая БД рассчитанная на планируемое кол-во записей подойдет. Т е: MySQL/MariaDB, PostgreSQL, Oracle, MS SQL. А если нужен полнотекстовый поиск я бы ориентировался на NoSQL типа Elastic. Ну или в сочетании Spring + HibernateSearch + Elastic
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756899
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopmaytonНе нужна вообще реляционка. Вот ни разу не нужна.
То бишь по сути и монга подойдет?
Подойдёт. Сто пудов можно уже готовую реализацию найти.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39756901
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но, судя по постам, опыт в проектировании NoSql баз нулевой.
Исходя из этого, советую MySQL, либо обязательно пройти бесплатный курс Mongodb for Java developers.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39757906
Алексей Cивоплясов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopКхм. кто даст доступ к своей инфе, особенно к такой инфе как бд. Смешно просто.? это раз. Второе. Зачем мне это? мне нужна инфа по клиенту. Мне не нужно знать его логин на сайте и т.д.

Форум на phpbb, для примера ... Это конечно "немного" сложнее, чем просто чатик, но если есть желание сделать правильно и на века, попробуйте развернуть форум. Там будет админка, база и форум. Вообще очень интересная структура, можно многое почерпнуть.
...
Рейтинг: 0 / 0
Выбор базы данных для Java EE приложения
    #39757919
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Cивоплясов, php и java разные по принципу. есть в джаве происходит выборка по запросу, но в пхп запросов в бд может быть больше только при загрузке страницы (видал я код битрикса, ох и говнище. столько запросов делается что мрак полныйи это на этапе загрузки страницы. И на фоне этого джава считай не несет нагрузки). А как в пхп делаются сокеты? я вот слышал что для этого подымают отдельный сервак на nodejs и на нем крутиться сокеты. как по мне перебор...
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 2 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Выбор базы данных для Java EE приложения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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