Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 В какой бд лучше смоделировать аналог таблиц?  [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]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить