Je suis en train d'implémenter ma propre base de données de licence, et je pensais à une idée pour la créer moi-même. Mais comme je ne suis pas très doué pour la conception de bases de données, j'espérais obtenir de l'aide (idées) avec le design.Comment puis-je concevoir au mieux cette base de données?
La façon dont je pense. J'ai besoin d'une base de données de relation un-à-plusieurs. L'idée est follolwing:
database.clients
id (int)20, auto_increment, not null;
Customer_Name (Varchar)255;
email (varchar)255;
serial (int)10;
PRIMARY KEY id;
UNIQUE serial;
database.serials
id (int)20, auto_increment, not null;
serial (varchar)40;
taken (int)2;
PRIMARY KEY id;
UNIQUE serial;
database.online
id (int)20, auto_increment, not null;
serial (int)10;
customer_name (varchar)255;
PRIMARY KEY id;
UNIQUE serial;
Le tableau des publications en série sera rempli de plusieurs (quelques centaines pour commencer) publications en série ... Mon idée est que lorsqu'un client achète un permis (ou plusieurs) , ils seront enregistrés dans la table des clients avec le nom et l'email. Une série leur sera affectée, de sorte que la ligne de série dans la table des clients pointera vers la ligne d'identification de leur série désignée.
Le tableau en ligne sera utilisé lorsque le client utilise le programme. Quand ils vont en ligne, le tableau en ligne sera rempli sera l'id de la série, et le nom du client. Quand ils seront hors ligne, ils seront supprimés de la table en ligne.
La table en ligne est également là pour empêcher un client d'utiliser la même série dans plusieurs instances simultanées. S'ils veulent exécuter plus d'un client simultanément, ils devront acheter une autre série.
Et maintenant à la question .... Est-ce que je pense complètement faux? Ou est-ce un bon design? Feriez-vous quelque chose de différent? Tout ce que vous avez à dire concernant la conception de cette base de données est précieux.
Merci!
plutôt que de suggérer une bonne conception laissez-moi vous demander ce que vous allez faire si descend la connexion Internet de votre serveur (à Dieu ne plaise) et votre client essaie d'utiliser le programme qu'il a acheté pour vous rendre compte qu'il ne peut pas l'utiliser parce qu'il n'y a aucun moyen de déterminer si sa série est valide ou pas contre votre base de données? Que faire si vous faites faillite? – Icarus
C'est une bonne question. Cependant pas impensé de. Laissez-moi commencer à répondre à vos questions dans l'ordre que vous leur avez demandé. 1. Que faire si le serveur tombe en panne? Si le serveur tombe en panne, il n'y a pas grand chose à faire, pour lequel les clients sont préparés. Merde arrive, malheureusement. 2. Et si je fais faillite? Bien que cela puisse toujours arriver, je vais d'emblée m'assurer que le serveur web est payant, pour quelques années à venir. Et si cela ne suffisait pas, il y en a au moins quelques-uns qui, je le sais, voudraient acheter le tout comme une solution complète pour fonctionner à leur place ... – Rickard
Cependant ... Si je connaissais une solution open source pour protéger le logiciel avec des publications en série, que je peux générer en utilisant un script php (il DOIT être au moins possible de générer des publications en série en utilisant PHP), alors je serais heureux de laisser aller utiliser le serveur du tout. Et surtout, une solution facile. Je programme dans csharp, et je ne suis pas trop clair. Heureusement, je n'ai pas besoin d'être pour le genre de logiciel que je vais faire. – Rickard