Question

Comment les gens des bases de données réutilisables qui peuvent être utilisés pour de nombreux produits?

Par exemple, si nous avons une base de données conçue pour une école ... Peut-il être modifié pour donner à un collège?

Quelle est la façon de créer une base de données qui peut être utilisé comme un produit pour donner une solution à de nombreux clients de codage juste une fois?

Merci

Était-ce utile?

La solution

Une application telle que cela nécessiterait un modèle de données assez complexe pour tenir compte des exigences. Différents types d'écoles auraient des exigences différentes. Une université peut vous permettre d'ajouter ou de supprimer des cours, mais une école primaire ne nécessite généralement pas. Une université doit planifier des cours dans les chambres, alors qu'un besoin école élémentaire pour mettre les élèves en classes et les notes divisées en classes en fonction de l'espace disponible et les enseignants.

Votre conception doit prendre en considération toutes les exigences qu'il est censé résoudre et mettre en œuvre les. Plus vous générique rendre le programme plus il est difficile de satisfaire vos clients. La question dit: « écrire le code une fois ». Si vous voulez écrire un seul programme qui permet de résoudre les besoins de chaque école, il aura besoin des centaines de fonctionnalités; dans certains cas, certaines écoles, il faudra une caractéristique opposée à une autre école; par exemple certaines écoles devront appliquer un enseignant par sujet ou en classe alors qu'une autre école pourrait nécessiter plusieurs enseignants. Les exigences plus vous attendre à rencontrer, l'application devient plus complexe.

Dans l'industrie de grandes applications ont tendance à être écrit afin qu'ils puissent être étendus; un noyau de fonctionnalité est fournie, mais l'application est destinée à être modifiée et personnalisée pour un client particulier. Cela rend plus facile à développer parce que vous n'avez pas besoin d'anticiper tous les besoins; en fait, vous ne aurez pas besoin d'anticiper de nombreux besoins jusqu'à ce que vous avez un client avec ces besoins. Mais avec « personnalisation » vous ne programmez pas une seule fois.

L'étape la plus importante est de trouver un modèle de données qui est suffisamment souple pour étendre plus tard, mais pas si flexible qu'il est impossible de développer pour. Le plus dur est généralement le devient cardinalité des relations correctes. Par exemple, vous pourriez dire une classe a un enseignant. Puis, quand il se trouve une classe a besoin de deux enseignants, il faut réécrire beaucoup de code et de fixer un grand nombre de données. Ces types de changements sont ennuyeux et beaucoup de temps. Cependant, à la fin vous pouvez toujours corriger les erreurs assez de temps de programmation donné.

Autres conseils

En général, quand les gens font cela, ils ont des clients multiples dans le même secteur. Donc, si vous êtes un développeur web de commerce électronique, vous allez courir à travers les mêmes produits, l'ordre, le type de scénario table détails de la commande encore et encore. Lorsque cela se produit, il est un jeu d'enfant de construire une base de données de démarrage.

Il n'y a pas de solution miracle simple pour cela. Vous avez juste besoin de garder votre assez générale de conception de base de données, mais essayez d'éviter une généralisation excessive que cela conduit généralement à des cauchemars dans l'entretien et d'autres pièges désagréables.

Avec l'expérience, vous allez commencer à apprécier un équilibre parfait entre généralisé et spécialisé. C'est la clé de la conception code / base de données compréhensible et réutilisable.

La réponse est de trouver un doux de abstraction .

La première étape, parler à une très grande variété des clients potentiels et connaître leurs besoins, ce qu'ils utilisent actuellement et ce qu'ils souhaitent que leur produit actuel (s) pourrait faire. Passez 10 fois plus longtemps à ce que vous pensez que vous devez en ce moment. Dessinez un potentiel sur le papier des interfaces graphiques et ont les gens interviewez vous regardez les dessins et faire des suggestions. Si possible, embaucher des gens dans l'industrie comme les analystes d'affaires pour aider à cette étape. Renseignez-vous sur les exigences légales. Certaines industries ont beaucoup de problèmes de complicance juridiques et d'autres ne le font pas. Tout ce qui touche de quelque façon que le monde médical et vous aurez besoin à la recherche et de bien comprendre les exigences HIPPA, par exemple.

Concevoir la structure de base de données et une interface graphique puis rendez-vous des utilisateurs réels à jouer avec elle. Refactor en fonction de ce qu'ils disent (il est étonnant de voir combien d'utilisateurs choses partent dans la collecte des exigences qu'ils ne pensent pas que face à une interface utilisateur graphique réelle).

Pensez à ce qui doit commun par tous les clients potentiels et où vous pourriez avoir besoin de personnalisation - vos interviews devraient vous guider ici. Décider comment gérer la personnalisation. Ou même si vous le permettez. Cela peut dépendre en grande partie de l'industrie et de la façon dont la norme leurs pratiques sont.

Si c'est un logiciel de boîte, souvent la conception comprend une table avec des champs personnalisables qui peuvent être ajoutés à des formes et des rapports par l'utilisateur.

Dans une solution basée sur le Web, souvent chaque personnalisation vouloir utilisateur peut avoir leur propre base de données où les informations personnalisées sont stockées (et une base de données standrad centrale pour les choses non personnalisables) et les programmeurs de faire les changements en fonction des demandes des clients. Si vous prenez cette route, la deuxième fois que vous faites une personnalisation simliar pour un second client, considérer si vous avez besoin de factoriser pour faire une nouvelle fonctionnalité du logiciel disponible pour tout le monde. Pas besoin d'écrire 17 rapports de présence personnalisés qui ne varient que par un ou deux champs lorsque la boîte client pour moins d'argent ont un rapport standard.

Dans le modèle Web, vous pouvez également créer un groupe de modules et ont les clients choisir qui d'ajouter à leur solution personnalisée. Ils seraient prêts à payer en fonction du nombre et de la complexité des modules de leur choix. Ainsi, le client qui ne veut que trois des rapports standard payerait moins que le client qui veut tout 27. Quand une nouvelle personnalisation est proposé, le client paie pour le développement si la suggestion ne semble pas appliquer immdeiately aux autres, mais le module est fait pour que les autres peuvent acheter aussi bien. Si d'autres l'achètent, le client qui a demandé orginal pour le changement pourrait obtenir une partie de l'argent jusqu'à ce que leurs coûts de développement sont payés. Ils pourraient aussi exiger que quelque chose reste en tant que module personnalisé et payer un prix beaucoup plus élevé pour ce travail. Nous avons des clients qui ne veulent même pas leurs données sur les mêmes serveurs dans le même endroit que d'autres clients. Inutile de dire que nous facturons une prime énorme pour faire quelque chose comme ça.

La personnalisation est coûteuse et peut conduire à beaucoup d'autres programmeurs nécessaires. Tenez compte très fortement avant de vous rendre la route de personnalisation. Il peut vraiment être la chose qui vend votre solution logicielle, mais il n'échelle pas bien. Il est pas mal quand vous avez dix cutomers mais quand vous avez quelques centaines il peut sortir de contrôle très rapidement. Il est beaucoup plus difficile de faire marche arrière de personnalisation une fois que vous offrez, que d'ajouter une personnalisation à partir d'une suite standard. Souvent, le besoin de personnalisation est plus dans l'organisation des rapports d'entreprise. Si vous pouvez créer une interface de reporting où les gens peuvent choisir les informations qu'ils veulent et sauver leurs propres rapports personnalisés, vous pouvez gérer la plupart des besoins de personnalisation dans votre secteur sans personnalisation à grande échelle nécessaire.

le meilleur conseil que je peux donner est de construire au plus petit dénominateur commun ....

.... code comme un projet orienté vers les établissements d'enseignement: -)

Passez du temps à réfléchir sur le type de données que vous souhaitez stocker, abstraire afin de le rendre extensible, puis construire votre base de données en conséquence. Je ne sais pas si vous pouvez obtenir une réutilisation parfaite de la façon dont vous pourriez à partir du code, mais vous pouvez construire une structure de base de données (où vous devez toujours modifier les composants individuels) qui est réutilisable si vous planifier à l'avance.

Cela dépend de vos besoins. Par exemple, beaucoup de nombreuses bases de données pour les entreprises à base de produits utilisent un format qui comprend:

  • une table client
  • une table de commandes
  • une table de produits, etc

Dans votre situation, vous pourriez avoir

  • une table de classe
  • une table étudiants
  • une table de classes, etc.

Ce format général de table pourrait être réutilisé dans de nombreuses applications.

Il est dans la conception. Dans beaucoup (sinon la plupart) des cas, les bases de données auront besoin un certain niveau de personnalisation pour les institutions individuelles; mais les bases de données peuvent fournir généralisées un niveau de fonctionnalités de base. Il est possible de concevoir quelque chose qui est assez général pour servir de nombreux besoins fondamentaux; mais le problème est que cette généralité de la conception tend à conduire à une grande complexité. Par exemple, vous pouvez concevoir votre base de données pour être basée sur les données pour un grand nombre de besoins des utilisateurs potentiels; mais en général, il est juste préférable de personnaliser le schéma aux besoins individuels de l'institution.

Il y a des compromis importants impliqués dans la conception d'une situation de réutilisabilité; en général, ils impliquent le temps et la complexité; à-dire, il est plus facile de concevoir quelque chose qui est non réutilisable; et le plus souvent, la quantité de temps supplémentaire invovled pour faire la conception générale et l'utiliser ne vaut pas l'effort.

Trouver le bon équilibre de généralité et de spécificité dans la conception de votre base de données afin que l'application vous construisez autour résout assez de problèmes dans vos marchés cibles qu'ils vont tous y adhérer.

Est-ce que d'essayer de construire chaque client utiliser toutes les fonctionnalités ou êtes-vous une taille unique pour tous les produits? J'ai toujours trouvé que le temps supplémentaire consacré à la planification et la modification d'une base de données pour une application particulière est payante à l'avenir. Il est beaucoup plus facile de travailler avec une structure de base de données concise que celle où vous avez essayé de compte toutes les possibilités.

Si j'ai une base de données existante qui est similaire ou un modèle que j'utilise habituellement un outil de modélisation de base de données comme cette pour modifier et utiliser la fonctionnalité générer SQL (sous charge / enregistrer) pour créer la base de données réelle.

Une autre astuce que je pris récemment qui m'a sauvé beaucoup de temps est de sauver le SQL utilisée pour générer la base de données en tant que script. Si je veux mettre en place une nouvelle base de données que je fais toutes les modifications au code source, puis charger la page. Par exemple, si je voulais créer une nouvelle table de client je charge http: // localhost / charge .php? générer = client .

it helps!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top