0

私の会社には、構築した Web サイトにデプロイするアプリがいくつかあります。最近、非常に古いアプリを新しいアプリと一緒に含める必要があり、両方のアプリで使用する必要があるテーブル名が重複しているという競合がありました。

現在、古いアプリの更新を進めており、DB の更新がいくつかあります。これらの名前の競合が起こらないようにするために、人々がベスト プラクティスと見なすもの (またはその方法) に興味があります。

スキーマを調べましたが、それが正しい道であるかどうかはわかりません。ドキュメントで規定されているように、特定のスキーマ名をアプリケーションに「配線」したくありません。また、スキーマをユーザー検索パスに追加すると、2 つのスキーマが同じテーブル名を持っている場合、参照しているテーブルをどのように知ることができますか。とはいえ、多分私はこれについて多くのことを読んでいます。

洞察や知恵の言葉は大歓迎です!

4

1 に答える 1

1

Postgresには名前空間があり、これは間違いなくその種のものを処理する最も効率的な方法です:)

古いデータベース用の新しい名前空間を作成するだけで完了です。ほとんどの PHP/MySQL ソリューションがそれを解決する方法 (アプリごとに特定のプレフィックス) もオプションですが、私はお勧めしません。

[編集] 具体的にはthe_namespace.tablenamesearch_path. 残りについてはsearch_path、名前空間を追加しない場合、名前空間が決定されます。

于 2010-03-16T19:13:50.077 に答える