2010-05-26 6 views
0

J'ai un programme Windows qui génère des formulaires PGP qui seront remplis plus tard.ODBC: Quel est le meilleur moment pour créer ma base de données?

Ces formulaires PHP peupleront une base de données. Cela ressemble beaucoup à MySql, mais je ne peux pas en être certain, alors appelons ça ODBC.

Et, oui, ce doit être un programme Windows. Il y aura également des formulaires PHP qui interrogent la base de données - examinent les tables et les champs qu'elle contient, puis génèrent des formulaires qui peuvent être utilisés pour rechercher la base de données (par exemple, elle trouve une table avec les champs "employee_name", etc. une forme qui vous permet de rechercher en fonction du nom des employés.


appelons que le temps de conception et de l'exécution.

au moment de la conception, à un responsable ou un mec IT ou similaire arrive à définir la nature de la base de données et à l'exécution 1) un travailleur remplit le formulaire quotidiennement et 2) la gestion peut extraire des rapports.

Voici ma question: étant donné que la base de données est définie au moment du design (et renseignée au moment de l'exécution), où et comment est-il préférable de le faire?

1 Je pourrais utiliser une interface ODBC du programme Windows, mais j'ai du mal à trouver quelque chose de bien pour travailler avec Delphi. Des choses comme ADO et firebird ont tendance à s'attendre à avoir déjà une base de données et vous permettent de la manipuler, mais je ne trouve pas d'exemple de code pour créer une base de données et des tables ...
2 de Delphi dans mon programme Windows. J'ai juste essayé et ai obtenu une réponse à MySql --version, mais je ne suis pas sûr si MySql etc. sont plus interactifs. C'est-à-dire, puis-je utiliser un fichier de script ou une très longue commande stacked avec des points-virgules et renvoie la séparation? par exemple, 'CREATE DATABASE db; CREATE TABLE t1; '
3) Comme la meilleure façon de travailler avec les bases de données semble être PHP, peut-être que mon programme Windows pourrait cracher une page PHP qui, une fois lancée dans un navigateur, créerait la base de données. J'ai essayé de rendre cela aussi simple que possible, mais n'hésitez pas à poser des questions. Il se peut qu'il y ait plusieurs façons valables, mais il y a probablement une solution «meilleure» en termes de facilité de mise en œuvre ou de maintenance. Meilleure option scratch 3. Que se passe-t-il si l'utilisateur veut revenir plus tard et que le programme Windows change le formulaire d'entrée? Il doit également mettre à jour la base de données.

+1

* Comme la meilleure façon de travailler avec les bases de données semble être PHP * - où avez-vous eu cela? php fonctionne bien avec mysql car les architectures LAMP/WAMP sont beaucoup utilisées, mais ce n'est pas forcément meilleur que n'importe quelle autre solution. – Konerak

+0

ok, je vais reculer de cette déclaration. – Mawg

Répondre

0

La création d'une base de données est généralement une tâche d'administrateur de base de données. À moins qu'il s'agisse d'une base de données locale, peut-être une base de données intégrée, l'utilisateur devrait savoir où et comment créer la base de données sur le serveur distant, et elle ne peut avoir aucune idée à ce sujet. Où stocker les fichiers de base de données? Quels disques sont disponibles? Et il pourrait y avoir beaucoup plus de paramètres à définir (taille des tampons memoery, etc.), les utilisateurs à créer et ainsi de suite. Et vous avez également besoin de privilèges très élevés pour pouvoir créer une base de données, pas quelque chose que vous donnez aux utilisateurs moyens ou aux applications. Vous demandez généralement à l'administrateur de base de données de créer votre base de données/schéma, il vous donnera les informations d'identification dont vous avez besoin pour vous connecter, puis votre application (ou sa configuration) créera et initialisera les objets nécessaires (tables, etc.). Créer une table (et un autre objet) est généralement aussi simple que d'exécuter des instructions "CREATE TABLE ....".Rappelez-vous simplement que SQL prend une commande seulement, si vous devez exécuter plusieurs commandes, vous devez les envoyer les unes après les autres, bien qu'il existe des composants Delphi capables de diviser un script en commandes et de les exécuter les unes après les autres.

+0

Désolé, même si je suis d'accord que ce que vous décrivez pourrait être normal, ce n'est pas ce que ça va être avec ce projet. Un «individu de gestion» utilisera un programme Windows pour générer des formulaires utilisés pour les rapports quotidiens (disons des rapports de ventes) et les utilisateurs non techniques les rempliront dans un navigateur. Cela signifie que le programme Windows va définir la base de données, définir les permissions et les mots de passe, etc., etc. Je n'ai pas le choix. – Mawg

+1

Il n'est pas nécessaire de "définir la base de données" chaque fois que les programmes génèrent des formulaires et que l'utilisateur les remplit. Vous devez définir * une fois * un ensemble de tables qui stockera les métadonnées et les données de vos formulaires. Idem aussi pour les utilisateurs de l'application. Les bases de données ne sont généralement pas conçues pour être des structures très dynamiques, mais pour gérer des données dynamiques. –

+0

+1 et je vais vous accorder la réponse, puisque personne d'autre ne semble intéressé. Cependant ... "Il n'est pas nécessaire de" définir la base de données "chaque fois que les programmes génèrent des formulaires et que l'utilisateur les remplit". J'ai évidemment mal expliqué ... "chaque fois que les programmes génèrent des formes" est "temps de conception" et pourrait ne être qu'une fois (si ils l'obtiennent bien la première fois), mais "et l'utilisateur les remplit" est "temps d'exécution" et devrait être tous les jours, au moins. "Les bases de données ne sont généralement pas conçues pour être des structures très dynamiques". D'accord, je me demande juste ce que je fais si un client décide de renommer un champ ou d'en ajouter/en supprimer un ... – Mawg

Questions connexes