IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

[demande][conseil][id_acte]pertinence ? comment ?


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut [demande][conseil][id_acte]pertinence ? comment ?
    Bjr,

    La question peut paraître trop généraliste mais je cherche pour l'instant avant une solution technique, une solution d'idée...

    après on adaptera...

    Le But est de générer à partir de plusieurs id fonctionnels,
    un id unique d'action dans une chaine d'actions possibles.

    Aussi je pense qu'on devra concaténer des ID fonctionnels (à chaque étape ?), à l'ID courant. Déjà première question celà parait il cohérent avec l'architecture interne de mysql.

    L'idée de base est de travailler sur plusieurs tables , chacune exprimant une action.
    le n° d'id ACTION serait donc à concaténer à chaque nouvelle étape tout en garantissant un ID_ACTION unique.

    un exemple similaire à notre besoin pourrait vous aider à le comprendre. :
    1 ère étape identifier de façon formelle le demandeur
    2 ième étape identifier de façon formelle le 1er fournisseur de service
    3 ième étape générer un n° unique d'acte
    4 ième étape ajouter un n° d'intervenant A
    5 ième à 10ième étape (maximum arbitraire) ajouter des n° d'intervenant.
    11 ième étape (ou inférieure) validation définitive du n° unique d'intervention

    sachant qu'en interne chaque n°d'ID d'étape serait un n°d'ID dans un table unique.

    le n° demandeur serait déjà un insert d'id obtenu par la lecture de sa carte (RFID) + concaténation d'un champ "binaire" correspondant à la saisie de son empreinte digitale sur un lecteur de type scanner local d'ED avec une tolérance de 5 à 10% .

    donc plusieurs questions se pose à ce principe de base.

    1- Est t il suffisant de concaténer ce type d'ID avec des ID texte comme les n° de professionnels (APE, n° à l'ordre des médecins, ou n° à la chambre de commerce, INSEE etc...) ...

    2- doit on en plus associé ce générateur de n° à un générateur pseudo-aléatoire ?

    3- peut on associer l'enregistrement à une contrainte unique dans la table ?

    4- la solution est mauvaise, et si oui pourquoi ?

    5- (optionnellement) si vous avez une autre structure de base à proposer... n'hésitez pas.

    Le but de ce mini-projet à l'intérieur d'un projet bien plus vaste est bien sur d'assurer un suivi étape à étape dans une sur-couche software à la BASE DE DONNÉES, en se basant sur la découpe de l'id_acte en sous chaines de caractères, pouvant être chacune comparées à l'id de chaque sous-acte individuellement..

    cdlt


    un exemple de ce que je pense être la solution "brouillon/test"

    id intervenant=00001
    id_destinataire=d0001
    id_intervenant_etape_2=i2i0001
    id_intervenant_etape_3=i3i0004
    id_intervenant_etape_4=i4i000b

    soit une chaine de n° de suivi = à "00001d0001di2i0001i3i0004i4i000b"

    dans cet exemple je simplifie par un délimiteur simple et 4chiffres mais à terme l'idée est de faire de même sur 16 caractères hexa à chaque intervention.

    Est ce une fausse bonne idée ?
    si oui pourquoi ?

    Merci ?

    (le but à ce jour est de trouver une idée fiable pour déterminer un cahier des charges et engager un prestataire expert sous mysql ou oracle éventuellement.



    Je comprend qu'il est très difficile de se rendre compte du besoin sur une description aussi courte, mais des détails complémentaires pourraient être soumis sous messagerie privée, si nécessaire..


    Après une brève discution avec le client je me demande si un xor simple entre le N° de carte (8 chiffres et un N° acte (étape) de 8 chiffres également) concatené à chaque fois ne suffirait pas. ?? )

    si oui est il pertinent d'encrypter le résultat ??

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    bjr

    pour clarifier le propos :

    ce dont j'ai besoin

    c'est de tables A,B,C avec des id_A, id_B id_C

    dans une table D je dois générer un id_D et un N_unique (unique donc)

    si je vais un concat id_A,id_B,id_C,[....],id_Z,id_D dans N_unique
    comment je peux garantir que N_unique soit vraiment unique

    et surtout comment garantir sa bonne mise à jour lorsque la table F admettons reçoit un nouvel enregistrement

    est t il suffisamment garanti qu'un n° de id (clef primaire not null auto-increment) pour me contenter de les concaténer ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    mysql> select concat(a,b,c,date(dat)+0) from newtable ;
    +-------------------------------------+
    | concat(a,b,c,date(dat)+0)           |
    +-------------------------------------+
    | 00001234000056780009101120100412    | 
    | 12345678932165498798675342120100413 | 
    +-------------------------------------+
    2 rows in set (0.00 sec)
     
    mysql> select * from newtable ;
    +------------------------------------------------------------------+-----------+-----------+-----------+------------+
    | D                                                                | A         | B         | C         | dat        |
    +------------------------------------------------------------------+-----------+-----------+-----------+------------+
    | 0000000000000000000000000000000000000000000000000000000000000001 |  00001234 |  00005678 |  00091011 | 2010-04-12 | 
    | 0000000000000000000000000000000000000000000000000000000000000002 | 123456789 | 321654987 | 986753421 | 2010-04-13 | 
    +------------------------------------------------------------------+-----------+-----------+-----------+------------+
    2 rows in set (0.00 sec)
     
    mysql>
    qu'en pensez vous ?

    manifestement cette méthode permet de garder les chaines et la possibilité de les extraire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    mysql> select * from texte ;
    +------------------------+
    | id                     |
    +------------------------+
    | 75BCD153ADE68B1882404D | 
    +------------------------+
    1 row in set (0.00 sec)
     
    mysql> select mid(id,8,8) from texte ;
    +-------------+
    | mid(id,8,8) |
    +-------------+
    | 3ADE68B1    | 
    +-------------+
    1 row in set (0.00 sec)
     
    mysql> select conv(mid(id,8,8),16,10) from texte ;
    +-------------------------+
    | conv(mid(id,8,8),16,10) |
    +-------------------------+
    | 987654321               | 
    +-------------------------+
    1 row in set (0.00 sec)
    donc reste plus qu'a trouver un moyen de garantir la génération de n°unique en début ou fin de chaine ??

    j'avais pas pensé à ça mais les chaines générées ne font pas forcément le même nombre de caractère ce qui interdit donc tout découpage par position ....

    une idée ?? pour résoudre ce problème ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    +----------------------------------------------------------------------------------------------------------------------------------+
    | 1132B53D128E642D6FF993EE4BAD462D53C8ABAC05E2BD20                                                                                 | 
    | 2132B53D160B7EF3382161740754A5AE0D093C820B18AB494                                                                                | 
    | 3132B53D160C08B9110E64E6EE54A1C0D239963120B18AB494                                                                               | 
    | 4132B53D160C08B9111E66B8ADD4A1C0D23946302BB18AB494                                                                               | 
    +----------------------------------------------------------------------------------------------------------------------------------+

Discussions similaires

  1. demande conseil...
    Par r-valkien dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/03/2006, 15h56
  2. Projet WEB : demande conseil et avis !
    Par xG-Hannibal dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 04/03/2006, 21h03
  3. [UML] Débutant demande conseil
    Par materiel67 dans le forum Débuter
    Réponses: 3
    Dernier message: 28/12/2005, 19h56
  4. [VB6] Demande conseil
    Par eagleleader dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/11/2005, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo