2010-10-07 6 views
1

Je prévois de créer deux applications utilisant Zend Framework qui sont très similaires mais qui servent deux objectifs différents qui ne peuvent pas faire partie de la même application ou être combinés en un seul. Cependant, les modules sont quelque chose que je considère. Le problème que je rencontre est le suivant: si un utilisateur s'enregistre pour la première application, je veux que cette information soit disponible pour la deuxième application, donc pour partager une table utilisateur ou une base de données utilisateur. Parce que les applications sont si similaires qu'elles ont les mêmes tables de base de données avec certaines ayant des champs différents, je ne suis pas sûr si je devrais avoir trois, deux ou une bases de données. Trois bases de données seraient base de données utilisateur, base de données App1, base de données App2. Deux bases de données seraient la base de données utilisateur et la base de données App1 + 2 avec des tables préfixées. Une base de données serait User et App1 + 2 Database. J'essaie de donner autant d'informations que possible, mais parce que c'est pour un client, je ne peux pas vraiment discuter des détails en profondeur. En outre, c'est quelque chose que le client veut et à part de ne pas être capable de comprendre comment le configurer, je ne suis pas sûr que ce soit le meilleur.Deux applications similaires sur différents domaines mais les mêmes utilisateurs

Mes Questions

  1. Parmi les options ci-dessus, qui serait mieux servir, ou autre?
  2. Dois-je avoir un ensemble de données utilisateur partagé sur deux applications ou les utilisateurs doivent-ils s'inscrire à nouveau?
  3. Quel que soit le choix que vous pensez être le meilleur, comment/devrais-je l'implémenter dans Zend? Juste un bref est nécessaire pas besoin de code.

J'espère que c'est assez d'informations pour me donner la meilleure réponse, mais si plus d'informations sont nécessaires, s'il vous plaît faites le moi savoir.

Merci!

Répondre

2

Pourquoi avoir plusieurs bases de données? Utilisez une seule base de données et préfixez les tables qui diffèrent pour les deux applications. Par exemple:

users app1_otherdata app2_otherdata

De cette façon, les données des utilisateurs seront facilement accessibles à la fois des applications et vous pourriez encore avoir une structure de base de données relativement indépendantes.

+0

La base de données multiple était une suggestion parce que je peux alors avoir les applications sur différents serveurs et ne pas dépendre d'une base de données. Bien que ce serait simplifier la vie en ce qui concerne la mise en place de la logique, je ne suis pas certain qu'à long terme cela en vaudrait la peine. – Jesse

+0

Eh bien, comme il semble que le fait d'avoir les mêmes données d'utilisateur sur les deux applications est une exigence, vous dépendez d'une base de données de toute façon. – Narf

0

La question 2 est quelque chose que vous devriez vraiment discuter avec votre client.

Une fois que vous connaissez la préférence de vos clients, vous pouvez par ex. suggère d'utiliser une approche d'authentification unique pour les sites, mais je garderais certainement les deux DB séparés. Donc, soit votre DB 2 (avec DB utilisateur distinct par application) ou votre solution DB 3 (avec DB utilisateur séparé/single sign-on) a plus de sens pour moi.

+0

Le problème est que le client ne connaît pas les meilleures pratiques et je ne sais pas non plus en termes de configuration. Je suis d'accord que ne pas avoir les deux applications partageant les mêmes utilisateurs serait le meilleur moyen d'y parvenir. – Jesse

Questions connexes