Bonjour Menoto,
On en revient à la portée de rats. Si donc on pouvait raisonner uniquement en terme de packs, partout où l’on traite du cylindre, on pourrait remonter d’un cran en remplaçant "CYL" par "PAK" (notamment en terme de statut : Partiel, complet, etc.)Je m'étais demandé si la granularité devait être le cylindre ou le pack
Mais, vous rappelez :
On est coincés : il faut décomposer le pack en granules plus fins, en fonction de la situation des cylindres, après traitement : pour tel pack P, le traitement d’un sous-ensemble de cylindres est terminé, un autre sous-ensemble se trouve dans l’état partiel, tel autre en dose insuffisante (un sous-ensemble pouvant à la limite correspondre à un singleton {cyl}). Du reste, c’est ce que vous faites quand vous proposez d’utiliser des fourchettes de valeurs :Lors du traitement, un ou plusieurs cylindres d'un PACK peuvent-être traités partiellement et les autres complètement.
______Ref A nCylDebut 1 nCylFin 20 Traitement Complet, etc.
Cette dernière façon de procéder n’est pas mauvaise en soi, dans la mesure où elle densifie. Cela dit, si l’on descend au niveau du cylindre, une fourchette peut être reconstituée par agrégation (opérateurs Group by, Min et Max). Le plus sage est de considérer que le granule correspond au cylindre. Sinon à supposer par exemple que votre direction accepte finalement votre proposition du code-barres au niveau du cylindre, si le granule est à un niveau moins fin, la modélisation sera à revoir, avec toutes les conséquences inhérentes.
Exemple d’agrégation : Fournir une liste de regroupements par traitement, référence, statut, premier et dernier numéros affectés à un ensemble de cylindres dans un traitement (cf. mon message du 27/10/2006, 18h03) :
Vous aurez noté que l’attribut Cyl_Id ne figure pas dans la requête (pas plus que dans toute autre requête pour laquelle on n’a pas besoin de descendre au niveau du cylindre). Néanmoins, la mise en œuvre de l’entité-type Cylindre (donc de l’identifiant Cyl_Id) reste pour moi quelque chose d’utile et de raisonnable, même si l’utilisateur n’est pas aujourd’hui concerné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 -- Statut d'un ensemble de cylindres, par traitement, référence, statut Select r.Trt_Id, c.Ref, r.Statut, Min(r.No_Dans_Trt) as Début, Max(r.No_Dans_Trt) as Fin From Cylindre c, RCT r Where c.Cyl_Id = r.Cyl_Id Group by r.Trt_Id, c.Ref, r.Statut
Au besoin, vous pouvez par ailleurs mettre en oeuvre une entité-type PACK, histoire d’y raccrocher les cylindres, si cela apporte un plus.
Je l’espère ! Mais nous devons en apporter la preuve : quel est le mode fonctionnement de l'opérateur à ce sujet ?Avec ce modèle, l'opérateur pourra-t-il sélectionner la quantité de cylindres qu'il souhaite traiter ?
What do you mean?
Vous n’avez par terminé votre phrase, je ne sais donc pas ce que vous attendez...Il est sûr que le cylindre étant identifié, l'opérateur devra veiller à ne pas placer sur le convoyeur un cylindre n'appartenant pas à ce TRAITEMENT mais ayant
En tout cas, je crois qu’il est temps que vous décriviez précisément le cycle de vie d’un pack (et d’un cylindre) et la façon selon laquelle votre système va dialoguer avec l’opérateur. Quelles informations doivent lui être impérativement présentées, quelle opération déclencherait le processus d’insertion d’une ligne dans la table des cylindres, à quel moment, etc.
Concernant les statuts :
Inspirez-vous toujours de ce qu’a dit Guillaume d’Ockham : « Ne multipliez pas les entités au-delà du nécessaire ». Si les statuts dans TR_STT_CYL_STK peuvent être inférés de ceux qui figurent dans RCT, alors TR_STT_CYL_STK doit disparaître.
Guillaume d’Ockham et les dates : L’entité-type DATE ne présente guère d’intérêt : Pourquoi ne pas simplement mettre en oeuvre un attribut Date de réception dans TJ_RCP_PDT_CDE ? Sinon vous allez devoir insérer un calendrier perpétuel dans la table DATE dérivée, ne serait-ce que pour des raisons d’intégrité référentielle.
Partager