Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 В какой бд лучше смоделировать аналог таблиц?  [new]
user.max
Member

Откуда:
Сообщений: 14
Сценарий:
Пользователь создает сущности (аналог таблицы), атрибуты сущности с типами (аналог столбцов) и наполняет сущность данными (строки в таблице). Атрибуты сущности могут ссылаться на атрибуты других сущностей (аналог JOIN по полю, например, users.id = post.user_id)
Необходимо делать выборки по такой структуре, например: получить все записи по критерию.
По сути нужно смоделировать реляционную бд. Делать это в реляционной бд (eav), мне кажется крайне костыльным решением.
Подскажите, пожалуйста, какую бд под такую структуру выбрать? Подразумевается хранение большого объема записей для каждой из сущностей.
23 окт 19, 19:34    [22001217]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
user.max,

Зачем изобретать БД, когда они уже есть и есть инструменты работы с БД?!
24 окт 19, 05:38    [22001340]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
982183
Member

Откуда: VL
Сообщений: 3386
Ну, например типы хранимых данных могут не поддерживаться существующими СУБД....

Хотя и в этом случае лучше извратиться и отделить ссылочную и фактическую части.
24 окт 19, 07:16    [22001347]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
982183
Member

Откуда: VL
Сообщений: 3386
user.max
1. Делать это в реляционной бд (eav), мне кажется крайне костыльным решением .
2. Какую бд под такую структуру выбрать?


Либо вы себе противоречите.
Либо расшифруйте как вы понимаете термины "реляционной бд (eav)" и "бд"
и какое видите в них различие.
24 окт 19, 07:25    [22001351]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
user.max
Сценарий:
Пользователь создает сущности (аналог таблицы), атрибуты сущности с типами (аналог столбцов) и наполняет сущность данными (строки в таблице). Атрибуты сущности могут ссылаться на атрибуты других сущностей (аналог JOIN по полю, например, users.id = post.user_id)

Пользователь, который создает все это - проектировщик, разработчик БД. Если он плохо спроектирует БД, то понадобится много программных ухищрений разработчику БД, программисту.

user.max
Необходимо делать выборки по такой структуре, например: получить все записи по критерию.
По сути нужно смоделировать реляционную бд. Делать это в реляционной бд (eav), мне кажется крайне костыльным решением.
Подскажите, пожалуйста, какую бд под такую структуру выбрать? Подразумевается хранение большого объема записей для каждой из сущностей.

Много программных ухищрений - это тоже костыльные решения.
24 окт 19, 11:21    [22001449]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
user.max
Member

Откуда:
Сообщений: 14
982183,

Наверно некорректно выразился. Проблема в условии задачи по сути. Нужно дать разным пользователям, реализовать сценарий, который описал.

Какую бд или схему лучше выбрать?
24 окт 19, 12:04    [22001517]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
user.max
Member

Откуда:
Сообщений: 14
vadiminfo, согласен. Но исходная задача звучит именно так. И проект многопользовательский. Т.е. любой пользователь может создавать сущности и работать с ними, как описано в сценарии.
24 окт 19, 12:07    [22001531]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Dimitry Sibiryakov
Member

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

user.max
Какую бд или схему лучше выбрать?

0. Ту, которая уже есть у заказчика.
1. Ту, которую знаешь.
2. Ту, которую знает тот, кого ты будешь доставать чайницкими вопросами.
3. Первую попавшуюся.

Posted via ActualForum NNTP Server 1.5

24 окт 19, 12:42    [22001597]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
user.max
982183,

Наверно некорректно выразился. Проблема в условии задачи по сути. Нужно дать разным пользователям, реализовать сценарий, который описал.

Какую бд или схему лучше выбрать?


Любую.
Все актуальные БД позволяют получить информацию о метаданных.
24 окт 19, 13:27    [22001632]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
user.max
vadiminfo, согласен. Но исходная задача звучит именно так. И проект многопользовательский. Т.е. любой пользователь может создавать сущности и работать с ними, как описано в сценарии.

Вот что касается "может создавать сущности" тут понятно: задача стоит занять персонал, созданием сущностей. В общем вводом данных.
Работать с сущностями, созданными любыми пользователями, скорее всего, смогут уже мягко говоря не все. А только те кто не понимает, что полученные результаты не адекватны. А чтобы получить адекватное, если это вообще будет возможно, нужно много костылей.

Ну действительно. Например, если даже реляционную можно спроектировать с избыточностью, то при написании запросов нужно как-то учитывать что там есть избыточность. А тут то никто и париться не будет о нормализации (любые пользователи этого делать не станут).
24 окт 19, 13:28    [22001633]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9651
user.max
Наверно некорректно выразился. Проблема в условии задачи по сути. Нужно дать разным пользователям, реализовать сценарий, который описал.

Какую бд или схему лучше выбрать?

Любую

Команды CREATE TABLE, INSERT и SELECT - есть почти в любой СУБД
24 окт 19, 13:48    [22001658]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9651
vadiminfo
....Например, если даже реляционную можно спроектировать с избыточностью

в постановке ТС вроде пользователь сам и проектирует

vadiminfo
то при написании запросов нужно как-то учитывать....

кодогенерацию и динамический SQL никто не запрешал
24 окт 19, 13:50    [22001659]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
user.max
Member

Откуда:
Сообщений: 14
Leonid Kudryavtsev
user.max
Наверно некорректно выразился. Проблема в условии задачи по сути. Нужно дать разным пользователям, реализовать сценарий, который описал.

Какую бд или схему лучше выбрать?

Любую

Команды CREATE TABLE, INSERT и SELECT - есть почти в любой СУБД



Работа многопользовательская. Пользователей уже около 700 штук. Каждый из них может создавать свои сущности и они могут пересекаться названиями.

Разносить каждого пользователя на отдельную бд, как вариант. Но он плохой, как и идея создавать реальные таблицы, индексы придется в каждой бд ставить индивидуально) А это почти невозможно, т.к. сущность могут удаляться/добавляться/редактироваться.

Ищу какой-то подход, вогнать всех пользователей в единую схему.
24 окт 19, 18:06    [22001968]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Dimitry Sibiryakov
Member

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

user.max
Но он плохой, как и идея создавать реальные таблицы, индексы придется в каждой бд ставить
индивидуально) А это почти невозможно, т.к. сущность могут
удаляться/добавляться/редактироваться.

С чего бы плохой-то? Обеспечивает полную изоляцию и безопасность. Каждый пользователь
создаёт нужные ему индексы и не рискует тем самым обрушить работу остальных. Идеально!

Posted via ActualForum NNTP Server 1.5

24 окт 19, 18:09    [22001974]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
user.max,

дайте юзерам MSAccess. Один черт, если каждый затачивает метаданные под себя - никакой централизованной обработки быть не может. Какой смысл в общей БД?
Пусть точать локальные базы, а вы, например, настройте централизованный бэкап.
24 окт 19, 18:16    [22001985]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Dimitry Sibiryakov
Member

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

ёёёёё
Какой смысл в общей БД?

Database-as-a-service, вообще-то не самая плохая идея. Модно, стильно, молодёжно.

Posted via ActualForum NNTP Server 1.5

24 окт 19, 18:19    [22001991]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
user.max
Member

Откуда:
Сообщений: 14
Dimitry Sibiryakov
user.max
Но он плохой, как и идея создавать реальные таблицы, индексы придется в каждой бд ставить
индивидуально) А это почти невозможно, т.к. сущность могут
удаляться/добавляться/редактироваться.

С чего бы плохой-то? Обеспечивает полную изоляцию и безопасность. Каждый пользователь
создаёт нужные ему индексы и не рискует тем самым обрушить работу остальных. Идеально!


Как раз нужно избавить пользователя от установки индексов. Он по факту работает с таблицами подобно "excel", не задумываясь, что там под капотом творится.
24 окт 19, 18:21    [22001995]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Dimitry Sibiryakov
Member

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

user.max
Как раз нужно избавить пользователя от установки индексов. Он по факту работает с
таблицами подобно "excel", не задумываясь, что там под капотом творится.

Ещё лучше. Мало ли что пользователь будет делать со своими данными, чужие индексы ему
реально будут только мешаться, а ты сможешь создавать только исключительно полезные
индексы каждому пользователю индивидуально, не рискуя получить от остальных "что вы
наделали, вчера всё работало, а сегодня невыносимо тормозит".

Posted via ActualForum NNTP Server 1.5

24 окт 19, 18:28    [22002004]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
user.max
Member

Откуда:
Сообщений: 14
Dimitry Sibiryakov
user.max
Как раз нужно избавить пользователя от установки индексов. Он по факту работает с
таблицами подобно "excel", не задумываясь, что там под капотом творится.

Ещё лучше. Мало ли что пользователь будет делать со своими данными, чужие индексы ему
реально будут только мешаться, а ты сможешь создавать только исключительно полезные
индексы каждому пользователю индивидуально, не рискуя получить от остальных "что вы
наделали, вчера всё работало, а сегодня невыносимо тормозит".


Пользователь ограничен в действиях, он не пишет явный SQL. Делает этот через конструктор визуальный: получить данные из такой-то сущности, с таким-то критерием.

Поэтому лучшей единая схема для всех . Пока сделал этот на основе EAV, с доработками. Но мне так не нравится это кривота. Вот и заинтересовался, стоит ли менять схему или уже бд.
24 окт 19, 18:41    [22002015]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Dimitry Sibiryakov
Member

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

user.max
Пользователь ограничен в действиях, он не пишет явный SQL. Делает этот через конструктор
визуальный: получить данные из такой-то сущности, с таким-то критерием.

Сугубо всё равно. Каждый пользователь индивидуален, его данные индивидуальны и индексы,
которые одному - польза, другому - яд.

Posted via ActualForum NNTP Server 1.5

24 окт 19, 18:44    [22002017]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
user.max
Dimitry Sibiryakov
пропущено...

Ещё лучше. Мало ли что пользователь будет делать со своими данными, чужие индексы ему
реально будут только мешаться, а ты сможешь создавать только исключительно полезные
индексы каждому пользователю индивидуально, не рискуя получить от остальных "что вы
наделали, вчера всё работало, а сегодня невыносимо тормозит".


Пользователь ограничен в действиях, он не пишет явный SQL. Делает этот через конструктор визуальный: получить данные из такой-то сущности, с таким-то критерием.

...

Конструктор не может транслировать логические сущности пользователя в физические таблицы? Добавь правила генерации имен, например, к имени сущности добавляй префикс - id пользователя. То же самое с именованиями других объектов ядра БД. Непонятно, в чем проблема.
24 окт 19, 18:49    [22002019]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
user.max
Member

Откуда:
Сообщений: 14
Dimitry Sibiryakov
user.max
Пользователь ограничен в действиях, он не пишет явный SQL. Делает этот через конструктор
визуальный: получить данные из такой-то сущности, с таким-то критерием.

Сугубо всё равно. Каждый пользователь индивидуален, его данные индивидуальны и индексы,
которые одному - польза, другому - яд.


Отчасти верно. Но в той же схеме EAV, индексами ему париться не придется. Просто растет неистово таблица, где хранятся records для entity. Эта таблица для всех пользователей системы одна, вид примерно такой: http://prntscr.com/pnmusc
24 окт 19, 18:52    [22002020]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Dimitry Sibiryakov
Member

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

user.max
Но в той же схеме EAV, индексами ему париться не придется.

Вот видишь, ты всё уже для себя решил. Топик можно прикрывать.

Posted via ActualForum NNTP Server 1.5

24 окт 19, 18:55    [22002023]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
Не очередная ли тут реинкарнация сего чЮдо-изобретения: https://www.sql.ru/forum/1315355/kak-nazvat-etu-strukturu-i-podhod-osnovannye-na-eav?
24 окт 19, 19:01    [22002026]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
user.max
Member

Откуда:
Сообщений: 14
Dimitry Sibiryakov, это не решение, это заглушка, иного просто не нашел ) пришел с вопросом на форум. Мне казалось, что бд изначально выбрал неправильную (реляционную)
24 окт 19, 19:22    [22002035]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Leonid Kudryavtsev
в постановке ТС вроде пользователь сам и проектирует

Ну вот. Но проектировать БД удачно не всегда получается и у проектировщиков БД. У которых есть специальное образование. А тут пользователь. Это как бы представление о том, что каждая домохозяйка может проектировать БД.

Leonid Kudryavtsev
кодогенерацию и динамический SQL никто не запрешал

Ну так если база плохо спроектирована, то нужны программные ухищрения, костыли всякие. Возможно, временные таблицы. Тут может вообще не получится написать запроса, который всегда будет правильное выдавать.
Некорректно, поставленная задача.
Кроме того, Разные пользователи под одним и тем же наименование атрибута или даже сущности, могут понимать не совсем одно и то же. И вообще. Вот они ввели одно и то же под разными названиями. И половина данных там, половина там.
И динамический SQL конечный пользователь разве напишет? А если напишет, то разве правильно?

Для запросов конечных пользователей специально придумали ОЛАП. И то эти пользователи часто ничего там не могут.
А тут то на мусорная БД (разработанная пользователями возможно тыкающими одним пальцем).
А Вы говорите. ТС. Такие ТС придумывали и 20 лет назад. Но тогда еще народ в основном самоучками в БД был. А теперь то все учились, проходили БД.
24 окт 19, 23:17    [22002135]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5688
user.max
Dimitry Sibiryakov, это не решение, это заглушка, иного просто не нашел ) пришел с вопросом на форум. Мне казалось, что бд изначально выбрал неправильную (реляционную)


Сказано, берешь любую БД и там создаешь нужные таблицы для пользователя.
Все актуальные БД поддерживают схемы и работы с метаданными.
Так что приложение сводиться к созданию собственного генератора SQL-запросов.
25 окт 19, 05:23    [22002167]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Изопропил
Member

Откуда:
Сообщений: 31570
user.max
Dimitry Sibiryakov, это не решение, это заглушка, иного просто не нашел ) пришел с вопросом на форум. Мне казалось, что бд изначально выбрал неправильную (реляционную)

Попробуй нереляционную
25 окт 19, 08:17    [22002191]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
user.max, посмотри neo4j.

Возможно удовлетворит твои изысканные требования.
25 окт 19, 11:35    [22002380]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6493
user.max,

выше линк на топик - в нем рассмотрены несколько вариантов решения этой задачи

воды конечно много (
29 окт 19, 09:56    [22004770]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
user.max
Member

Откуда:
Сообщений: 14
Siemargl,

напишите, пожалуйста, линк. Не нахожу по теме .
4 ноя 19, 00:02    [22009164]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6493
https://www.sql.ru/forum/1315355/kak-nazvat-etu-strukturu-i-podhod-osnovannye-na-eav?
4 ноя 19, 08:16    [22009204]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
MX-9
Member

Откуда: LIBAVA
Сообщений: 523
user.max
Dimitry Sibiryakov
пропущено...

С чего бы плохой-то? Обеспечивает полную изоляцию и безопасность. Каждый пользователь
создаёт нужные ему индексы и не рискует тем самым обрушить работу остальных. Идеально!


Как раз нужно избавить пользователя от установки индексов. Он по факту работает с таблицами подобно "excel", не задумываясь, что там под капотом творится.


Собрать все в одну базу данных можно с нашим приложением на основе
синтеза EXCEL & BD
А дальше спокойно разбираться с 700 таблицами через SQL или nonSQL

У пользователей почти что EXCEL - но :
- вся информация хранится не в Excel-книгах, а на сервере в виде многомерных кубов и виртуальных Excel-листов
- при подключении пользователя к серверу его реальный Excel-лист заполняется данными с нужного виртуального листа. листы тесно взаимосвязаны - изменения отображаются на обоих листах.
- после отключения пользователя его реальный Excel-лист не сохраняется, но данные остаются на сервере.
- контроль и обработка данных выполняются специальными формулами в ячейках листов.
Все 700 пользователей могут быть разными - это задается формулами на их листах.
Но таблицы в BD вполне можно стандартизировать.
www.armex.pro
2 янв 20, 23:59    [22052981]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
MX-9
Все 700 пользователей могут быть разными

А могут и не быть разными?
3 янв 20, 17:10    [22053137]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
А зачем Зяма самозабанился?
3 янв 20, 17:14    [22053138]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
mayton
А зачем Зяма самозабанился?

Так было надо. А кто это?
7 янв 20, 09:56    [22054368]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
MX-9
Member

Откуда: LIBAVA
Сообщений: 523
ёёёёё
MX-9
Все 700 пользователей могут быть разными

А могут и не быть разными?


Могут сильно различаться вид экрана (лист Excel), графические элементы,
формулы контроля-обработки вводимых данных, железо, версии Excel.

Настройка под каждого индивидуально - c учетом специфики его работы и уровня доступа.

Но все данные идут в одну общую таблицу в единой BD.
7 янв 20, 13:34    [22054438]     Ответить | Цитировать Сообщить модератору
 Re: В какой бд лучше смоделировать аналог таблиц?  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
MX-9
ёёёёё
пропущено...

А могут и не быть разными?


Могут сильно различаться вид экрана (лист Excel), графические элементы,
формулы контроля-обработки вводимых данных, железо, версии Excel.

Настройка под каждого индивидуально - c учетом специфики его работы и уровня доступа.

Но все данные идут в одну общую таблицу в единой BD.


Я вообще-то про абсолютно другое спросил. Даже про противоположное.
7 янв 20, 16:56    [22054550]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Сравнение СУБД Ответить