Шаблон разработки нескольких баз данных

У меня есть проект Codeigniter, который следует шаблону MVC, и он отлично работает с одной базой данных. В нашей базе данных есть несколько сущностей — приложения, пользователи и т. д. — не важно. На прошлой неделе мне поставили задачу, что нам нужна копия проекта, которая будет иметь доступ к нашей информации, но должна иметь возможность иметь свою личную информацию. Еще одно ограничение — они должны владеть своей базой данных.

Переменные - Project_1, DB_1, Project_2, DB_2, DB_Shared.

Моя идея состоит в том, чтобы создать общую базу данных, которая будет содержать большую часть информации DB_1, чтобы Project_1 и Project_2 могли получить к ней доступ, и каждый проект будет иметь свою собственную частную базу данных, к которой другой проект не будет иметь доступа.

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

Придется ли мне переписывать все вызовы БД? Поскольку у меня есть система ссылок, такая как url/controller/entity/id - id больше не является уникальным элементом, потому что сущности могут существовать в двух базах данных. Должен ли я писать поля подключения? Потому что на страницах, где я должен отображать все данные, мне нужно было бы объединить два ответа вместе, и мне нужно было бы как-то различать результаты.

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

Quasimodo's clone 14.02.2019 09:40

для нескольких баз данных, вы читали это: stackoverflow.com/questions/8268853/…

Sofyan Thayf 14.02.2019 09:41

@SofyanThayf У меня есть, но это только часть соединения.

Alexey 14.02.2019 09:43

@Quasimodo'sclone В первом абзаце я указываю, что необходимо для достижения. Нам нужна копия проекта, и нам нужно, чтобы обе копии имели доступ к одной и той же общей информации, но должны иметь только личную информацию. Итак, 1 частная БД на проект + 1 общая БД.

Alexey 14.02.2019 09:44

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

Quasimodo's clone 14.02.2019 09:46

Хорошо, почему бы просто не скопировать базу данных, создать нового пользователя, предоставив ему доступ к обоим? В чем проблема?

Quasimodo's clone 14.02.2019 09:47

@Quasimodo'sclone Именно поэтому я задаю вопрос здесь, чтобы я мог устранить некоторые темные области в своем понимании этой проблемы.

Alexey 14.02.2019 09:48

Вы можете создать столько пользователей, сколько захотите. Каждый пользователь может иметь права на создание, вставку, обновление, выбор (, ...) в базах данных, таблицах и т.д. Вы можете точно настроить, кто что может делать.

Quasimodo's clone 14.02.2019 09:50

@Quasimodo'sclone Есть сотни пользователей. У нас около 400 пользователей. 120 из них принадлежат определенной компании и решили, что им нужна собственная версия нашего инструмента. Таким образом, они хотят по-прежнему использовать нашу информацию, иметь возможность войти в оба проекта, потому что мы получаем деньги от их создания приложений, но в какой-то момент они хотят расстаться и продавать вещи, которые не имеют отношения к нам.

Alexey 14.02.2019 09:50

Это то, что делают виртуальные хостеры. Если вы арендуете хост, вы обычно получаете одну или несколько баз данных и имеете собственного пользователя базы данных. Вы получаете административные права только на свою собственную базу данных и даже не имеете прав на чтение других баз данных иностранных клиентов. dev.mysql.com/doc/refman/8.0/en/grant.html

Quasimodo's clone 14.02.2019 09:52

Давайте продолжить обсуждение в чате.

Alexey 14.02.2019 09:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
11
119
0

Другие вопросы по теме