2017-10-16 5 views
0

Je crée une application Laravel/dernière version qui nécessite la création de plusieurs centaines de tables SQL pour le travail. Il y aura encore des centaines de clients dont les données seront insérées plusieurs fois (1000 lignes par client ou plus dans certaines tables) dans ce tableau. Pour éliminer la confusion, je veux une base de données générale/commune pour des informations communes et une base de données distincte pour chaque client pour des informations spécifiques et je voudrais créer une nouvelle base de données lorsqu'un client est ajouté. Cela peut-il être fait dans Laravel (traitant plusieurs bases de données à la fois) ou existe-t-il un autre cadre PHP qui peut mieux servir cet objectif? Beaucoup obligé pour votre aide.Laravel - Plusieurs bases de données à la fois

Répondre

1

Eh bien la plupart du temps, c'est un défaut architectural parce que le db n'est pas bien conçu. Normalement, ce genre de problème est rencontré en raison de la raison pour laquelle toutes vos tables sont normalisées. La normalisation est bonne pour les petites applications, mais pour les applications riches en données, vous devez déterminer quels champs doivent être normalisés et lesquels n'ont pas besoin d'être normalisés. Vous pouvez enregistrer beaucoup de tables et de champs avec dénormalisation. En règle générale, tout ce que vous n'avez pas à interroger directement ou via une jointure peut être dénormalisé.

De toute façon, il est possible d'avoir plusieurs bases de données attachées à une seule application Laravel. Je l'ai fait une fois sur une énorme application. Donc, l'idée est que, avant chaque requête éloquente, vous devrez définir la connexion DB.

$someModel->setConnection('mysql2'); 

Vous pouvez trouver plus d'informations à ce sujet here