powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранения в одной БД информации разных компаний
23 сообщений из 23, страница 1 из 1
Хранения в одной БД информации разных компаний
    #38786971
design21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стоит задача хранения в одной БД информации разных компаний:
сотрудники разных компаний используют один и тот же функционал приложения, но не должны видеть данные друг друга, разделяя их на основе каких-либо ключей. Подскажите пожалуйста как сформировать запрос в гугле, или дайте прямые ссылки, где посмотреть примеры и рекомендации по созданию такого рода систем, с точки зрения схемы базы данных.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38786978
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И много у вас таких разных компаний? Обязательно хранить их в одной БД?
Я к тому, что сливать в одну кучу легко и быстро, рассортировывать по кучкам - гораздо более трудоемкий процесс.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38786993
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала Вам надо определиться - все ли данные надо разделять или не все (обычно нужно как раз не все - справочники полов (tm) и т.п. удобнее иметь общие). Если совсем-совсем все - действительно стоит подумать "а так ли нужно это в одной физической БД?".
Если не все - во все разделяемые таблицы добавляете CompanyID, строите на их основании вьюшки с разделением по СompanyID,
раздаете на эти вьюшки соответствующие права, права на таблицы отбираете у всех.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787002
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
design21Стоит задача
хранения в одной БД информации разных компаний:
сотрудники разных компаний используют один и тот же функционал приложения,
но не должны видеть данные друг друга,
разделяя их на основе каких-либо ключей.


Подскажите пожалуйста
как сформировать запрос в гугле,
или дайте прямые ссылки,

где посмотреть примеры и рекомендации по созданию такого рода систем,

с точки зрения схемы базы данных.


кмк
,так
повнятней
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787165
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257И много у вас таких разных компаний? Обязательно хранить их в одной БД?
Я к тому, что сливать в одну кучу легко и быстро, рассортировывать по кучкам - гораздо более трудоемкий процесс.

это неправда. Все ровно наоборот.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787200
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думал недавно над аналогичным вопросом и пришел к выводу, что лучше разделять на отдельные БД.

Допустим, есть справочник общего пользования, но клиенты (в данном случае это разные компании) могут его расширять. Справочник примитивный, Id-Description буквально.
Клиент А добавляет новый элемент, он будет виден остальным клиентам в этой БД?

Если да, то остальные клиенты могут начать энергично возражать. Ну и справочники у всех раздуются мгновенно, до невменяемого размера.
Если нет, то через некоторое время такой же элемент пытается добавить клиент Б - ваши действия?

Если делаем новую запись, то уже теряется смысл держать все в одной базе.
Если открываем видимость на существующую, то через неделю А пытается ее переименовать.

Потом клиент В хочет иметь локализацию всей БД на двух языках, а клиент Г - на четырех, из них общий только русский. Потом каждый начинает править локализацию под себя...

Грамотное управление общими ресурсами - это довольно непростая вещь. Прежде чем в это соваться, подумайте, так ли много вы выиграете, запихнув всех в одну БД, чтобы связываться с этой задачей.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787275
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
design21,

Делал так:
1. в справочнике контрагентов отдельная ветка типа "Наша корпорация", в этой ветке подразделы,
ООО "Рога и Копыта", Артель "Милости просим", ЗАО "Бендер и сыновья" и т.д.

2. Для каждого залогинившегося определяется список предприятий, с которыми он может работать.

3. Все документы, помимо FK Контрагенты имеют и FK Owner.

Выборка документов для пользователя ведётся с учётом его прав на предприятие.

Вот и всё. Этого достаточно, что-бы работники работали в одной базе, а думали что в разных.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787278
design21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы. Я понял что лучше попытаться отговорить заказчика от такой архитектуры. :)
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787446
Фотография Станислав Клевцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин ...
Если не все - во все разделяемые таблицы добавляете CompanyID, строите на их основании вьюшки с разделением по СompanyID,
раздаете на эти вьюшки соответствующие права, права на таблицы отбираете у всех.

Это самый простой и быстрый способ.
Удобен в дальнейшем при построении отчетности по данным 2 компаний.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787448
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv это неправда. Все ровно наоборот. Аргументы в студию, пожалуйста.
Вводные данные - поскольку ТС не привел, возьмем с потолка - десятки компаний.
Вопрос - стоит ли сводить их в одну базу или одна компания одна база.
за одну базу
- проще администрировать, проще поддерживать общие данные (справочники, код)
- проще обломать хотелки ретивых представителей отдельных компаний заказчика - "все или никто"
за разные базы
- выше требования к дисциплине администрирования - все действия должны быть скриптами, все действия должны вести свой лог и т.д.
- масштабируемость - надо базе номер два больше ресурсов - пожалуйста - хоть отдельный сервер.
- надежность - сломалась база номер три - остальные работают.
- безопасность - вероятность пользователей увидеть чужие данные гораздо меньше.
- проще снять компанию с поддержки - просто грохнуть базу
- хотелки представителей отдельных компаний - когда нельзя, но очень хочется - в этом случае тоже проще реализуется, хотя это и чревато.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787450
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И да - гибридный способ - одна общая база, плюс по базе для каждой компании.
Только надо внимательно проанализировать чтобы не получить недостатки обоих подходов.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787460
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
design21Стоит задача хранения в одной БД информации разных компаний:

- если это просто задача и всё, то наплевать на неё, нет смысла реализовывать то, чем никто не будет пользоваться
(если не нужно будет делать обобщённый анализ по нескольким компаниям одновременно)
- А вот если это главная задача заказчика (то есть одному или нескольким боссам как раз необходимо видеть
весь холдинг в целом) - то тут уже никуда не денешься, кто платит - тот и заказывает музыку, а дальше
всё зависит от конкретной постановки задачи и оборудования, но основные направления следующие:
1. Базы абсолютно независимые, но поставляют сводные данные в определенном формате в базу боссов - отдельное хранилище
(автоматически, по расписанию, по запросу или ещё как). База боссов кроме сводных данных больше не содержит ничего.
2. Базы гибридные: наличие общих классификаторов, контрагентов и раздельные хранилища для рабочих
документов + отдельное хранилище для сводных отчетов боссов.
3. Общая база данных для всего холдинга (выше уже было про это).
Короче - если всё в целом никому не нужно, то и вам это не должно быть нужно, а если всё-таки нужно,
то скорее всего вариант реализации более-менее конкретизируется наличием технической возможности и
имеющимися коммуникациями...
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787550
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257- безопасность - вероятность пользователей увидеть чужие данные гораздо
меньше.
А в случае Оракула с настроенным RLS или вышеописанных вьюшек эта вероятность ненулевая?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787801
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257MasterZiv это неправда. Все ровно наоборот. Аргументы в студию, пожалуйста.
Вводные данные - поскольку ТС не привел, возьмем с потолка - десятки компаний.
Вопрос - стоит ли сводить их в одну базу или одна компания одна база.
за одну базу
- проще администрировать, проще поддерживать общие данные (справочники, код)
- проще обломать хотелки ретивых представителей отдельных компаний заказчика - "все или никто"
за разные базы
- выше требования к дисциплине администрирования - все действия должны быть скриптами, все действия должны вести свой лог и т.д.
- масштабируемость - надо базе номер два больше ресурсов - пожалуйста - хоть отдельный сервер.
- надежность - сломалась база номер три - остальные работают.
- безопасность - вероятность пользователей увидеть чужие данные гораздо меньше.
- проще снять компанию с поддержки - просто грохнуть базу
- хотелки представителей отдельных компаний - когда нельзя, но очень хочется - в этом случае тоже проще реализуется, хотя это и чревато.

вот что за бред ты тут пишешь?
почти все доводы "против" -- надуманные.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38787807
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv вот что за бред ты тут пишешь? Напиши не бред.
Давай исходные данные, аргументы за и против.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38789734
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor TiegaelДопустим, есть справочник общего пользования, но клиенты (в данном случае это разные компании) могут его расширять. Справочник примитивный, Id-Description буквально.
Клиент А добавляет новый элемент, он будет виден остальным клиентам в этой БД?

Если да, то остальные клиенты могут начать энергично возражать. Ну и справочники у всех раздуются мгновенно, до невменяемого размера.
Если нет, то через некоторое время такой же элемент пытается добавить клиент Б - ваши действия? Это еще надо суметь распознать, что элемент такой же...
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38789744
soulsurfer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм, в SAP ERP лежит в одной БД. Существует понятие манданта - http://www.sap-dev.ru/netweaver/2.1.php
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38790175
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257MasterZiv это неправда. Все ровно наоборот. Аргументы в студию, пожалуйста.


Если в одно БД лежат данные разных фирм, чтобы разделить эти данные, достаточно из каждой таблицы, где есть
данные разных фирм удалить все данные , не принадлежащие нужной нам фирме (предварительно, естественно, скопировав БД).
Всё просто.

Если надо сливать данные от разных фирм -- тут даже однозначно двумя словами не сформулировать какой-то план действий,
всё будет зависеть и от данных, и от предметной области.
Надо будет решать и задачу о слиянии справочников, с идентификацией сущности каждого справочника, и задачу разграничения доступа к данным разных фирм (её правда и в одной БД надо решать). Если структуры баз разные -- это ещё сложнее , надо ещё и в одну структуру приводить всё.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38790189
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь прокоментировать бред:

SERG1257 за разные базы
- выше требования к дисциплине администрирования - все действия должны быть скриптами, все действия должны вести свой лог и т.д.


Это и так, и так надо делать. И с одной БД, и с двумя. И можно НЕ делать как с одной, так и с 10.
К тому же -- это наверное больше НЕДОСТАТОК, а ты пытаешься указать доводы ЗА разные БД.


SERG1257 - масштабируемость - надо базе номер два больше ресурсов - пожалуйста - хоть отдельный сервер.


10 компаний повышают объём БД примерно на порядок (в 10 раз).
Для СУБД -- это небольшое увеличение объёма.
Напомню, что индексы дают производительность в логарифм объема данных.


SERG1257 - надежность - сломалась база номер три - остальные работают.


Ну, тут некорректно сравнивать. Ты сравниваешь надёжность работы всего холдинка в случае одной БД с надёжностью работы одной компании. Да, требования по надёжности повышаются, но тут есть и плюсы -- вместо 10 серверов можно покупать только 2, и делать
HSB.


SERG1257 - безопасность - вероятность пользователей увидеть чужие данные гораздо меньше.


Детский лепет. Rowwise access делается очень просто. Многие СУБД его даже поддерживают уже в ядре.


SERG1257 - проще снять компанию с поддержки - просто грохнуть базу


В случае одной БД Закрывается доступ компании -- и всё.
Данные удалять, естественно, не надо -- нам нужно знать свою историю.

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

В чем проблема реализовать их в одной БД?
РАссказать другим компаниям о новшистве -- и все будут пользоваться.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38790195
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, вы тут все понаписали много разной фигни. Я всё это понимаю, все ваши доводы. Всё это -- от неопытности, вы всего боитесь.
Поверьте, всё не так страшно, всё гораздо проще.

И правило простое -- одно приложение -- одна БД.
Если у вас одно приложение работает в холдинге -- должна быть одна БД.

И с данными потом --- просто песня, всё в одной структуре, всё в одной базе -- руководители холдинга вам спасибо скажут сразу.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38790559
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

В том-то и дело, что у ТС - ни слова про холдинг. Его компании-клиенты могут вообще друг к другу никак не относиться, как арендаторы в AWS, например. И вот тут уже совершенно другие критерии вылезают.

А слить все потом в один варехаус - вообще отдельная задача, к раз(об)ъединенности OLTP имеющая довольно никакое отношение.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38790785
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНапомню, что индексы дают производительность в логарифм объема данных.

Производительность чего?
Операция поиска - это далеко не все, что можно и нужно делать с базой.
...
Рейтинг: 0 / 0
Хранения в одной БД информации разных компаний
    #38791012
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ж просил - приводи исходные данные.

Однозначно верного ответа НЕТ. В зависимости от конфигурации одни доводы могут быть надуманными , другие критичные, а третьи "а вот про это мы не подумали". Все что мы можем сделать для очередного топикстартера это выложить ВСЕ замеченные грабли.

Теперь по пунктам
MasterZiv 10 компаний повышают объём БД примерно на порядок (в 10 раз).Настраивать отдельные базы проще, чем одну большую, когда все одновременно что-то пытаются сделать.

MasterZiv Ты сравниваешь надёжность работы всего холдинка в случае одной БД с надёжностью работы одной компанииЯ сравниваю время простоя в случае сбоев. И мне не нравится ситуация когда семеро ждут одного.

MasterZiv но тут есть и плюсы -- вместо 10 серверов можно покупать только 2В наше виртуальное время никогда нельзя сказать 10 там серверов 2 или вообще один, а уж сколько это будет по деньгам "ведает только аллах"

MasterZiv делать HSB.Расшифруй аббревиатуру

MasterZiv Детский лепет. Rowwise access делается очень просто. Многие СУБД его даже поддерживают уже в ядре.Самое слабое место в любой системе это человек. В случае разных баз - конфигурация будет в двух местах - в строке подключения и в базе, если админ накосячил, пользователь получит ошибку, в случае одной базы это делается в одном месте (в базе) и тут уже все зависит от приложения.

MasterZiv Данные удалять, естественно, не надо -- нам нужно знать свою историю.И нахрена нам эта история в OLTP базе. Которая занимает место в бакапах, клонируется в тестовую среду, занимает место в бакапах там. Место этой истории в хранилище данных

MasterZiv В чем проблема реализовать их в одной БД?
РАссказать другим компаниям о новшистве -- и все будут пользоваться. Если хотелки не противоречат друг другу.

MasterZiv Ребята, вы тут все понаписали много разной фигни. Я всё это понимаю, все ваши доводы. Всё это -- от неопытности, вы всего боитесь.
Поверьте, всё не так страшно, всё гораздо проще.
У тебя есть хрустальный шар? И ты можешь "говорить за всю Одесу"?

MasterZiv И с данными потом --- просто песня, всё в одной структуре, всё в одной базе -- руководители холдинга вам спасибо скажут сразу. Зачем руководителям холдинга делать сводный отчет по OLTP базе.
Ennor Tiegael А слить все потом в один варехаус - вообще отдельная задача, к раз(об)ъединенности OLTP имеющая довольно никакое отношение.Именно.

Еще раз повторю - однозначного ответа быть не может. По любому будет выбор меньшего из зол , поэтому в первом приближении я всегда стараюсь отделить "котлеты отдельно, мухи отдельно" и только потом делать котлеты из мух. Злой мачехе потребовались три секунды чтобы смешать крупу, чтобы Золушка всю ночь ее разгребала.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранения в одной БД информации разных компаний
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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