|
|
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Стоит задача хранения в одной БД информации разных компаний: сотрудники разных компаний используют один и тот же функционал приложения, но не должны видеть данные друг друга, разделяя их на основе каких-либо ключей. Подскажите пожалуйста как сформировать запрос в гугле, или дайте прямые ссылки, где посмотреть примеры и рекомендации по созданию такого рода систем, с точки зрения схемы базы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 18:36 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
И много у вас таких разных компаний? Обязательно хранить их в одной БД? Я к тому, что сливать в одну кучу легко и быстро, рассортировывать по кучкам - гораздо более трудоемкий процесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 18:47 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Для начала Вам надо определиться - все ли данные надо разделять или не все (обычно нужно как раз не все - справочники полов (tm) и т.п. удобнее иметь общие). Если совсем-совсем все - действительно стоит подумать "а так ли нужно это в одной физической БД?". Если не все - во все разделяемые таблицы добавляете CompanyID, строите на их основании вьюшки с разделением по СompanyID, раздаете на эти вьюшки соответствующие права, права на таблицы отбираете у всех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 19:14 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
design21Стоит задача хранения в одной БД информации разных компаний: сотрудники разных компаний используют один и тот же функционал приложения, но не должны видеть данные друг друга, разделяя их на основе каких-либо ключей. Подскажите пожалуйста как сформировать запрос в гугле, или дайте прямые ссылки, где посмотреть примеры и рекомендации по созданию такого рода систем, с точки зрения схемы базы данных. кмк ,так повнятней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 19:21 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
SERG1257И много у вас таких разных компаний? Обязательно хранить их в одной БД? Я к тому, что сливать в одну кучу легко и быстро, рассортировывать по кучкам - гораздо более трудоемкий процесс. это неправда. Все ровно наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 08:59 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Думал недавно над аналогичным вопросом и пришел к выводу, что лучше разделять на отдельные БД. Допустим, есть справочник общего пользования, но клиенты (в данном случае это разные компании) могут его расширять. Справочник примитивный, Id-Description буквально. Клиент А добавляет новый элемент, он будет виден остальным клиентам в этой БД? Если да, то остальные клиенты могут начать энергично возражать. Ну и справочники у всех раздуются мгновенно, до невменяемого размера. Если нет, то через некоторое время такой же элемент пытается добавить клиент Б - ваши действия? Если делаем новую запись, то уже теряется смысл держать все в одной базе. Если открываем видимость на существующую, то через неделю А пытается ее переименовать. Потом клиент В хочет иметь локализацию всей БД на двух языках, а клиент Г - на четырех, из них общий только русский. Потом каждый начинает править локализацию под себя... Грамотное управление общими ресурсами - это довольно непростая вещь. Прежде чем в это соваться, подумайте, так ли много вы выиграете, запихнув всех в одну БД, чтобы связываться с этой задачей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 13:49 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
design21, Делал так: 1. в справочнике контрагентов отдельная ветка типа "Наша корпорация", в этой ветке подразделы, ООО "Рога и Копыта", Артель "Милости просим", ЗАО "Бендер и сыновья" и т.д. 2. Для каждого залогинившегося определяется список предприятий, с которыми он может работать. 3. Все документы, помимо FK Контрагенты имеют и FK Owner. Выборка документов для пользователя ведётся с учётом его прав на предприятие. Вот и всё. Этого достаточно, что-бы работники работали в одной базе, а думали что в разных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 17:50 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. Я понял что лучше попытаться отговорить заказчика от такой архитектуры. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 17:58 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин ... Если не все - во все разделяемые таблицы добавляете CompanyID, строите на их основании вьюшки с разделением по СompanyID, раздаете на эти вьюшки соответствующие права, права на таблицы отбираете у всех. Это самый простой и быстрый способ. Удобен в дальнейшем при построении отчетности по данным 2 компаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 02:17 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
MasterZiv это неправда. Все ровно наоборот. Аргументы в студию, пожалуйста. Вводные данные - поскольку ТС не привел, возьмем с потолка - десятки компаний. Вопрос - стоит ли сводить их в одну базу или одна компания одна база. за одну базу - проще администрировать, проще поддерживать общие данные (справочники, код) - проще обломать хотелки ретивых представителей отдельных компаний заказчика - "все или никто" за разные базы - выше требования к дисциплине администрирования - все действия должны быть скриптами, все действия должны вести свой лог и т.д. - масштабируемость - надо базе номер два больше ресурсов - пожалуйста - хоть отдельный сервер. - надежность - сломалась база номер три - остальные работают. - безопасность - вероятность пользователей увидеть чужие данные гораздо меньше. - проще снять компанию с поддержки - просто грохнуть базу - хотелки представителей отдельных компаний - когда нельзя, но очень хочется - в этом случае тоже проще реализуется, хотя это и чревато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 02:40 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
И да - гибридный способ - одна общая база, плюс по базе для каждой компании. Только надо внимательно проанализировать чтобы не получить недостатки обоих подходов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 02:51 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
design21Стоит задача хранения в одной БД информации разных компаний: - если это просто задача и всё, то наплевать на неё, нет смысла реализовывать то, чем никто не будет пользоваться (если не нужно будет делать обобщённый анализ по нескольким компаниям одновременно) - А вот если это главная задача заказчика (то есть одному или нескольким боссам как раз необходимо видеть весь холдинг в целом) - то тут уже никуда не денешься, кто платит - тот и заказывает музыку, а дальше всё зависит от конкретной постановки задачи и оборудования, но основные направления следующие: 1. Базы абсолютно независимые, но поставляют сводные данные в определенном формате в базу боссов - отдельное хранилище (автоматически, по расписанию, по запросу или ещё как). База боссов кроме сводных данных больше не содержит ничего. 2. Базы гибридные: наличие общих классификаторов, контрагентов и раздельные хранилища для рабочих документов + отдельное хранилище для сводных отчетов боссов. 3. Общая база данных для всего холдинга (выше уже было про это). Короче - если всё в целом никому не нужно, то и вам это не должно быть нужно, а если всё-таки нужно, то скорее всего вариант реализации более-менее конкретизируется наличием технической возможности и имеющимися коммуникациями... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 04:08 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
SERG1257- безопасность - вероятность пользователей увидеть чужие данные гораздо меньше. А в случае Оракула с настроенным RLS или вышеописанных вьюшек эта вероятность ненулевая?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 13:38 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
SERG1257MasterZiv это неправда. Все ровно наоборот. Аргументы в студию, пожалуйста. Вводные данные - поскольку ТС не привел, возьмем с потолка - десятки компаний. Вопрос - стоит ли сводить их в одну базу или одна компания одна база. за одну базу - проще администрировать, проще поддерживать общие данные (справочники, код) - проще обломать хотелки ретивых представителей отдельных компаний заказчика - "все или никто" за разные базы - выше требования к дисциплине администрирования - все действия должны быть скриптами, все действия должны вести свой лог и т.д. - масштабируемость - надо базе номер два больше ресурсов - пожалуйста - хоть отдельный сервер. - надежность - сломалась база номер три - остальные работают. - безопасность - вероятность пользователей увидеть чужие данные гораздо меньше. - проще снять компанию с поддержки - просто грохнуть базу - хотелки представителей отдельных компаний - когда нельзя, но очень хочется - в этом случае тоже проще реализуется, хотя это и чревато. вот что за бред ты тут пишешь? почти все доводы "против" -- надуманные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 05:04 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
MasterZiv вот что за бред ты тут пишешь? Напиши не бред. Давай исходные данные, аргументы за и против. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 06:40 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Ennor TiegaelДопустим, есть справочник общего пользования, но клиенты (в данном случае это разные компании) могут его расширять. Справочник примитивный, Id-Description буквально. Клиент А добавляет новый элемент, он будет виден остальным клиентам в этой БД? Если да, то остальные клиенты могут начать энергично возражать. Ну и справочники у всех раздуются мгновенно, до невменяемого размера. Если нет, то через некоторое время такой же элемент пытается добавить клиент Б - ваши действия? Это еще надо суметь распознать, что элемент такой же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 18:09 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Хмм, в SAP ERP лежит в одной БД. Существует понятие манданта - http://www.sap-dev.ru/netweaver/2.1.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 18:19 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
SERG1257MasterZiv это неправда. Все ровно наоборот. Аргументы в студию, пожалуйста. Если в одно БД лежат данные разных фирм, чтобы разделить эти данные, достаточно из каждой таблицы, где есть данные разных фирм удалить все данные , не принадлежащие нужной нам фирме (предварительно, естественно, скопировав БД). Всё просто. Если надо сливать данные от разных фирм -- тут даже однозначно двумя словами не сформулировать какой-то план действий, всё будет зависеть и от данных, и от предметной области. Надо будет решать и задачу о слиянии справочников, с идентификацией сущности каждого справочника, и задачу разграничения доступа к данным разных фирм (её правда и в одной БД надо решать). Если структуры баз разные -- это ещё сложнее , надо ещё и в одну структуру приводить всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 09:11 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Пытаюсь прокоментировать бред: SERG1257 за разные базы - выше требования к дисциплине администрирования - все действия должны быть скриптами, все действия должны вести свой лог и т.д. Это и так, и так надо делать. И с одной БД, и с двумя. И можно НЕ делать как с одной, так и с 10. К тому же -- это наверное больше НЕДОСТАТОК, а ты пытаешься указать доводы ЗА разные БД. SERG1257 - масштабируемость - надо базе номер два больше ресурсов - пожалуйста - хоть отдельный сервер. 10 компаний повышают объём БД примерно на порядок (в 10 раз). Для СУБД -- это небольшое увеличение объёма. Напомню, что индексы дают производительность в логарифм объема данных. SERG1257 - надежность - сломалась база номер три - остальные работают. Ну, тут некорректно сравнивать. Ты сравниваешь надёжность работы всего холдинка в случае одной БД с надёжностью работы одной компании. Да, требования по надёжности повышаются, но тут есть и плюсы -- вместо 10 серверов можно покупать только 2, и делать HSB. SERG1257 - безопасность - вероятность пользователей увидеть чужие данные гораздо меньше. Детский лепет. Rowwise access делается очень просто. Многие СУБД его даже поддерживают уже в ядре. SERG1257 - проще снять компанию с поддержки - просто грохнуть базу В случае одной БД Закрывается доступ компании -- и всё. Данные удалять, естественно, не надо -- нам нужно знать свою историю. SERG1257 - хотелки представителей отдельных компаний - когда нельзя, но очень хочется - в этом случае тоже проще реализуется, хотя это и чревато. В чем проблема реализовать их в одной БД? РАссказать другим компаниям о новшистве -- и все будут пользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 09:24 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Ребята, вы тут все понаписали много разной фигни. Я всё это понимаю, все ваши доводы. Всё это -- от неопытности, вы всего боитесь. Поверьте, всё не так страшно, всё гораздо проще. И правило простое -- одно приложение -- одна БД. Если у вас одно приложение работает в холдинге -- должна быть одна БД. И с данными потом --- просто песня, всё в одной структуре, всё в одной базе -- руководители холдинга вам спасибо скажут сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 09:28 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
MasterZiv, В том-то и дело, что у ТС - ни слова про холдинг. Его компании-клиенты могут вообще друг к другу никак не относиться, как арендаторы в AWS, например. И вот тут уже совершенно другие критерии вылезают. А слить все потом в один варехаус - вообще отдельная задача, к раз(об)ъединенности OLTP имеющая довольно никакое отношение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 12:41 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
MasterZivНапомню, что индексы дают производительность в логарифм объема данных. Производительность чего? Операция поиска - это далеко не все, что можно и нужно делать с базой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:02 |
|
||
|
Хранения в одной БД информации разных компаний
|
|||
|---|---|---|---|
|
#18+
Я ж просил - приводи исходные данные. Однозначно верного ответа НЕТ. В зависимости от конфигурации одни доводы могут быть надуманными , другие критичные, а третьи "а вот про это мы не подумали". Все что мы можем сделать для очередного топикстартера это выложить ВСЕ замеченные грабли. Теперь по пунктам MasterZiv 10 компаний повышают объём БД примерно на порядок (в 10 раз).Настраивать отдельные базы проще, чем одну большую, когда все одновременно что-то пытаются сделать. MasterZiv Ты сравниваешь надёжность работы всего холдинка в случае одной БД с надёжностью работы одной компанииЯ сравниваю время простоя в случае сбоев. И мне не нравится ситуация когда семеро ждут одного. MasterZiv но тут есть и плюсы -- вместо 10 серверов можно покупать только 2В наше виртуальное время никогда нельзя сказать 10 там серверов 2 или вообще один, а уж сколько это будет по деньгам "ведает только аллах" MasterZiv делать HSB.Расшифруй аббревиатуру MasterZiv Детский лепет. Rowwise access делается очень просто. Многие СУБД его даже поддерживают уже в ядре.Самое слабое место в любой системе это человек. В случае разных баз - конфигурация будет в двух местах - в строке подключения и в базе, если админ накосячил, пользователь получит ошибку, в случае одной базы это делается в одном месте (в базе) и тут уже все зависит от приложения. MasterZiv Данные удалять, естественно, не надо -- нам нужно знать свою историю.И нахрена нам эта история в OLTP базе. Которая занимает место в бакапах, клонируется в тестовую среду, занимает место в бакапах там. Место этой истории в хранилище данных MasterZiv В чем проблема реализовать их в одной БД? РАссказать другим компаниям о новшистве -- и все будут пользоваться. Если хотелки не противоречат друг другу. MasterZiv Ребята, вы тут все понаписали много разной фигни. Я всё это понимаю, все ваши доводы. Всё это -- от неопытности, вы всего боитесь. Поверьте, всё не так страшно, всё гораздо проще. У тебя есть хрустальный шар? И ты можешь "говорить за всю Одесу"? MasterZiv И с данными потом --- просто песня, всё в одной структуре, всё в одной базе -- руководители холдинга вам спасибо скажут сразу. Зачем руководителям холдинга делать сводный отчет по OLTP базе. Ennor Tiegael А слить все потом в один варехаус - вообще отдельная задача, к раз(об)ъединенности OLTP имеющая довольно никакое отношение.Именно. Еще раз повторю - однозначного ответа быть не может. По любому будет выбор меньшего из зол , поэтому в первом приближении я всегда стараюсь отделить "котлеты отдельно, мухи отдельно" и только потом делать котлеты из мух. Злой мачехе потребовались три секунды чтобы смешать крупу, чтобы Золушка всю ночь ее разгребала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:09 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38787275&tid=1540753]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 523ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...