PHP / MySQL - iki veritabanları, ortak bir ve uygulama örneğine yerel biriyle çalışmak

2 Cevap php

Durum: bir off-the-raf PHP uygulamasını kullanarak, ekstra işlevsellik için yeni bir modül eklemek gerekir. Bugün, sonunda uygulamanın dört farklı örnekleri konuşlandırılacak bilinen yaptı, ancak yeni işlevsellik gelen veriler bu 4 örnekleri arasında paylaşılacak olmasıdır. Her örneği yine de kullanıcıların, içerik ve vb için kendi veritabanı olmalıdır

So the data for the new functionality goes into a 'shared' database. The data for the application (user login, content, uploads) go into a 'local' database

Işler daha karmaşık hale getirmek için, ben yazıyorum yeni modül aynı zamanda yerel DB ve paylaşılan DB veri almak olacaktır.

Tabanı uygulaması bir yeniden-yazma çok uzun sürer. Ben sadece yazıyorum yeni modülün üzerinde kontrole sahip.

Ideal çözüm: MySQL kullanarak bir isim haline 2 veritabanları saklanması için bir yolu var mı? Ben DB bağlantıları açmak veya özellikle benim SQL ifadeleri içeriden sorgulamak için DB isim istemiyorum.

Bu yüzden görünmez iki farklı DB okuma / yazma için deneyebilirsiniz uygulama DB sarıcı kullanır, bu yüzden ben bir şekilde bunu değiştirmek mümkün duyuyorum.

2 Cevap

Ben DB bağlantıları açmak veya özellikle benim SQL ifadeleri içeriden sorgulamak için DB isim istemiyorum.

Bu ne yanlış var? Uygulama DB sarıcı (iki bağlantı anlamına gelse bile, bu bağlantı kolu tutar ve DB sargının iki veya daha fazla bağımsız örneklerini olabilir anlamına gelir) "nesne-yönelimli" ise, bana öyle geliyor ki en kolay ve en yalındır çözüm sadece iki DB sarıcı örneği var olmaktır. Uygulama bilir ve paylaşılan bir veritabanı kullanır ve başka bir örnek yerel veritabanı için "default" birini kullanın. Sorguları yaparken ekstra veritabanı parametresini ekleyerek de bana Tamam görünüyor.

Nasıl birine iki veritabanları saklanması istiyorsunuz? Nasıl varsayımsal orta tabaka sorguları hangi veritabanına gitmek gerektiğini bilemez? Eğer DB sargıyı değiştirmek bile, bunu nasıl doğru biri olan veritabanı anlamaya hayal ediyorsunuz? Gibi, DB2 sorgu için db1 ve tablolar listesi için sorgu tablo adlarının bir listesi olan ... Nah, bazı gizli kurallar getirerek yakında dağınık alacak.

Bunun üzerinde düşünmek, kendimi bir fikir geldi. 'Ortak veritabanı daha fazla uygulama için bir hizmeti gibi davranmaktadır. Yani bunun yerine doğrudan veri almak, bir hizmet olarak o uzakta saklanması ve verileri almak için XML-RPC kullanır.