Литиевые соединения (MongoDb, CouchDb и Mysql) в одном приложении - PullRequest
2 голосов
/ 07 сентября 2011

Я был на пути к разработке приложения для электронной коммерции.Можно ли написать литиевое приложение, которое работает на разных соединениях в основном MongoDb или CouchDb и MySQL?Как мы можем это сделать и каковы ваши советы по достижению этого?

1 Ответ

2 голосов
/ 07 сентября 2011

Я не уверен, правильно ли я вас понял.

Если вы просто хотите использовать больше соединений одновременно с разными базами данных, это легко возможно.Вы можете просто определить больше соединений одновременно (взгляните на файл начальной загрузки connections.php, а также на документацию для класса lithium \ core \ Environment).

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

В общем, ответить на этот вопрос непросто, но вот некоторые мысли по этому поводу:

Как вы, возможно, знаете, Lithium предоставляет вамс уровнем абстракции базы данных, который предоставляет общие методы для процесса CRUD.Как хорошо, что это происходит во время разработки (вам не нужно изучать новые интерфейсы для каждой базы данных), вы скоро придете к точке, когда вам понадобятся специфические функции базы данных.

Это может вызвать проблемы совместимости между реляционными базами данных, нопочти невозможно смешивать реляционные и нереляционные базы данных.Конечно, вы можете использовать их бок о бок, но обеспечить абстракции действительно сложно.Например, как бы вы запросили вложенные документы (как вы делаете в MongoDB) в MySQL?Вы могли бы написать обертку, которая пытается эмулировать это, но вам не следует пытаться это делать.

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

...