0

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

В настоящее время мы обновляем старое приложение, и там будут некоторые обновления БД. Мне любопытно, что люди считают лучшей практикой (или как вы это делаете), чтобы гарантировать, что эти столкновения имен не произойдет.

Я просмотрел схему, но не уверен, что это правильный путь, который мы хотим принять. Как documentation prescribes, я не хочу «проецировать» конкретное имя схемы в приложение, и если я добавлю схему в путь поиска пользователя, как бы он знал, в какой таблице я имел в виду, имеют ли две схемы одинаковое имя таблицы. хотя, может быть, я много читаю.

Любые идеи или слова мудрости будут очень признательны!

ответ

1

Postgres имеет пространство имен, которое, безусловно, самый эффективный способ обработки такого рода вещи :)

Просто создать новое пространство имен для старой базы данных, и вы сделали. Способ решения большинства решений PHP/MySQL (определенный префикс для каждого приложения) также является вариантом, но не тот, который я бы рекомендовал.

[изменить] В частности, вы можете позвонить в свои столы следующим образом: the_namespace.tablename кроме изменения search_path. В остальном search_path решит ваше пространство имен, если вы не добавите пространство имен.

+3

SCHEMA - это название пространства имен: CREATE SCHEMA the_namespace; –

Смежные вопросы