|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : décembre 2011 Messages : 3 ![]() |
Bonjour,
Je conçois une application sur MySQL workbench (qui est, en passant, un outil formidable, loin devant DBDesigner). Soit une table "Item" qui contient des types d'objets. Soit une table "Tool" qui est une specialisation de certains objets. Sa cle primaire est egalement une cle etrangere correspondant a la cle primaire de Item. Exemples : l'objet "pioche" sera dans Item et dans Tool. L'objet "Livre" quant a lui sera uniquement dans Item. Je me demande actuellement ce qu'il vaut mieux faire pour determiner si un Item est egalement un Tool : 1- Utiliser un champ BOOL is_tool dans Item 2- Ne rien utiliser, et chercher a chaque fois dans Tool l'existance de la cle etrangere correspondante Je pencherai pour la premiere solution, mais j'aimerai votre avis avant de prendre cette decision. Merci d'avance |
|
|
00
|
|
|
#2 | ||
|
Membre confirmé
![]() |
Bonjour, bonjour !
La solution 1) ne me semble pas terrible. Pour savoir si un Item est également un Tool, tu pourrais faire une requête du style Code :
__________________
define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas. |
||
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Bonjour,
Si tu cherches à savoir quels items ne sont pas des tools, utilise la solution de GyZmoO. Si tu veux avoir des tools avec les attributs communs à tous les items, crée une vue : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#4 | |||
|
Invité de passage
![]() Étudiant Inscription : décembre 2011 Messages : 3 ![]() |
Citation:
Cela veut dire que MySQL parcourt toute la table Tool. Dans la solution avec "is_tool", MySQL peut theriquement ecarter les Items qui ne sont pas des Tool, sans faire le parcourt de la table. Mais le fait-il ainsi ? Cette solution presente de plus des etats sables non coherents dans la base, par exemple is_tool a false alors qu'un enregistrement existe dans Tool. |
|||
|
|
00
|
|
|
#5 | |||||||||||
![]() ![]() |
Tu devrais mieux préciser ton besoin.
Citation:
1) J'ai 1 item et je veux savoir si c'est aussi un tool. Code :
2) Obtenir la liste de tous les items qui sont aussi des tools : Citation:
Citation:
Code :
Tu vois que les solutions sont différentes selon le besoin alors lis la phrase en bleu de ma signature et applique son principe pour te conduire plus efficacement vers la solution.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|||||||||||
|
00
|
|
|
#6 |
|
Invité de passage
![]() Étudiant Inscription : décembre 2011 Messages : 3 ![]() |
Actuellement, je ne sais pas encore dans quels ratios je vais utiliser telle et telle operation. Donc je vais sans doute continuer a reflechir aux mecanismes du programmes pour ensuite trouver la solution la plus adaptee.
Merci pour vos conseils |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com