begin process at 2012 05 28 21:19:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

Format d'une DB (Théorie/Conseil)?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Format d'une DB (Théorie/Conseil)?

mardi 10 juin 2003 à 11:45:00 | Format d'une DB (Théorie/Conseil)?

Kenaghdar

Bonjour tout le monde,

Je me trouve confronté à un petit problème de conception pour une BDD destinée à stocker des recettes de cuisines. De manière synthétique, nous avons 2 tables: dbIngr qui contient les ingrédients et dbRecet qui contient hum les recettes. Mon problème est le lien entre les deux tables. Autrement dit, comment lier dbRecet à dbIngr de manière intelligent et optimale.

Ma première idée était d'avoir une colonne dans dbRecet qui contiendrai l'ID de l'ingrédient (index de dbIngr en fait). Mais j'ai peur que cette solution soit un peu uzine à gaz: si une recette contient 10 ingrédients, j'aurai 10 entrées dans dbRecet pour la même recette (avec une superbe redondance d'informations). De plus, je dois étendre la clé pour différencier les 10 entrées, ce qui parait-il n'est pas forcément le mieux.

Une autre idée était de mettre un nombre donné de colonnes dans dbRecet pour les ingrédients, par exemple 15 colonnes, qui contiendraient les ID des ingrédients. Mais ici, si une recette ne possède que 5 ingrédients, nous avons 10 colonnes vides et ne serviront jamais à rien. Par contre, je n'ai pas de redondances d'informations, ni plusieurs entrées pour une même recette.

Si vous avez un avis ou une critique, n'hésitez pas. Toute aide est la bienvenue. Au passage, cette DB fera partie d'un projet de site web gratuit. Donc, je ne vous fais pas l'aumône pour ensuite me faire des sous sur vos connaissances.

Ken.
mardi 10 juin 2003 à 12:02:21 | Re : Format d'une DB (Théorie/Conseil)?

Tortuegeniale


Salut

moi perso j'opte pour la 1ere solution
un colonne id ingrédient dans la table recette, si c bien géré ( c loin d'etre dure) ça sera pas dutout une usine a gaz, c le principe d'un forum, j'ai ça sur mon site et meme avec 200 question et 1000 réponses y a pas de problemes.

Index bien tes champs et le tours est joué (l'indexation sert a rendre plus rapide la recherche dans ces champs)

++

--> http://www.kame-house.org <--
La plus grosse base de données sur les dessins animés des années 80
Site gratuit et sans pub


-------------------------------
Réponse au message :
-------------------------------

> Bonjour tout le monde,
>
> Je me trouve confronté à un petit problème de conception pour une BDD destinée à stocker des recettes de cuisines. De manière synthétique, nous avons 2 tables: dbIngr qui contient les ingrédients et dbRecet qui contient hum les recettes. Mon problème est le lien entre les deux tables. Autrement dit, comment lier dbRecet à dbIngr de manière intelligent et optimale.
>
> Ma première idée était d'avoir une colonne dans dbRecet qui contiendrai l'ID de l'ingrédient (index de dbIngr en fait). Mais j'ai peur que cette solution soit un peu uzine à gaz: si une recette contient 10 ingrédients, j'aurai 10 entrées dans dbRecet pour la même recette (avec une superbe redondance d'informations). De plus, je dois étendre la clé pour différencier les 10 entrées, ce qui parait-il n'est pas forcément le mieux.
>
> Une autre idée était de mettre un nombre donné de colonnes dans dbRecet pour les ingrédients, par exemple 15 colonnes, qui contiendraient les ID des ingrédients. Mais ici, si une recette ne possède que 5 ingrédients, nous avons 10 colonnes vides et ne serviront jamais à rien. Par contre, je n'ai pas de redondances d'informations, ni plusieurs entrées pour une même recette.
>
> Si vous avez un avis ou une critique, n'hésitez pas. Toute aide est la bienvenue. Au passage, cette DB fera partie d'un projet de site web gratuit. Donc, je ne vous fais pas l'aumône pour ensuite me faire des sous sur vos connaissances.
>
> Ken.
mardi 10 juin 2003 à 13:10:39 | Re : Format d'une DB (Théorie/Conseil)?

Kenaghdar

Je t'avoue que c'est la solution que je préfère, mais la redondance d'infos me parait vraiment problématique. Dans mon post, je n'ai pas précisé que la table des recettes contenait un champs de type BLOB permettant de stocker la préparation de la recette (le modus operandi si tu préfères).

Si j'utilise la 1ère solution, il est préférable que je place la préparation autre part, soit dans une table indépendante soit dans un fichier plat. Si j'utilise une table indépendante, est-ce que le fait de devoir lire 3 tables différentes pour afficher une seule recette ne va pas jouer fortement sur les performances?

Quoiqu'il en soit, merci de ta réponse.

A+

-------------------------------
Réponse au message :
-------------------------------

>
> Salut
>
> moi perso j'opte pour la 1ere solution
> un colonne id ingrédient dans la table recette, si c bien géré ( c loin d'etre dure) ça sera pas dutout une usine a gaz, c le principe d'un forum, j'ai ça sur mon site et meme avec 200 question et 1000 réponses y a pas de problemes.
>
> Index bien tes champs et le tours est joué (l'indexation sert a rendre plus rapide la recherche dans ces champs)
>
> ++
>
> --> http://www.kame-house.org <--
> La plus grosse base de données sur les dessins animés des années 80
> Site gratuit et sans pub

mardi 10 juin 2003 à 13:58:40 | Re : Format d'une DB (Théorie/Conseil)?

Tortuegeniale


tu peux juste faire 3 tables

1 table recette qui contient la recette, la préparation
1 table ingrédiant avec la liste entiere des ingrédients
1 table de jointure avec par exemple 2 champs id recette et id ingrédient

id_recette | id_ingrédient
==================
1 | 2
1 | 12
1 | 9
1 | 5


Ce ki veut dire ke pour la recette 1 faut l'ingrédient 2, 12, 9 et 5

On aura parler de tout sur ce forum lol

++

--> http://www.kame-house.org <--
La plus grosse base de données sur les dessins animés des années 80
Site gratuit et sans pub


-------------------------------
Réponse au message :
-------------------------------

> Je t'avoue que c'est la solution que je préfère, mais la redondance d'infos me parait vraiment problématique. Dans mon post, je n'ai pas précisé que la table des recettes contenait un champs de type BLOB permettant de stocker la préparation de la recette (le modus operandi si tu préfères).
>
> Si j'utilise la 1ère solution, il est préférable que je place la préparation autre part, soit dans une table indépendante soit dans un fichier plat. Si j'utilise une table indépendante, est-ce que le fait de devoir lire 3 tables différentes pour afficher une seule recette ne va pas jouer fortement sur les performances?
>
> Quoiqu'il en soit, merci de ta réponse.
>
> A+
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > Salut
> >
> > moi perso j'opte pour la 1ere solution
> > un colonne id ingrédient dans la table recette, si c bien géré ( c loin d'etre dure) ça sera pas dutout une usine a gaz, c le principe d'un forum, j'ai ça sur mon site et meme avec 200 question et 1000 réponses y a pas de problemes.
> >
> > Index bien tes champs et le tours est joué (l'indexation sert a rendre plus rapide la recherche dans ces champs)
> >
> > ++
> >
> > --> http://www.kame-house.org <--
> > La plus grosse base de données sur les dessins animés des années 80
> > Site gratuit et sans pub
>
>
mardi 10 juin 2003 à 14:50:18 | Re : Format d'une DB (Théorie/Conseil)?

Kenaghdar

Tu viens de me remettre en mémoire un trèèès vieux cours sur les DB en parlant de table de jointure. Pas crétin du tout.

Merci beaucoup pour le coup de main.

K.


-------------------------------
Réponse au message :
-------------------------------

>
> tu peux juste faire 3 tables
>
> 1 table recette qui contient la recette, la préparation
> 1 table ingrédiant avec la liste entiere des ingrédients
> 1 table de jointure avec par exemple 2 champs id recette et id ingrédient
>
> id_recette | id_ingrédient
> ==================
> 1 | 2
> 1 | 12
> 1 | 9
> 1 | 5
>
>
> Ce ki veut dire ke pour la recette 1 faut l'ingrédient 2, 12, 9 et 5
>
> On aura parler de tout sur ce forum lol
>
> ++
>
> --> http://www.kame-house.org <--
> La plus grosse base de données sur les dessins animés des années 80
> Site gratuit et sans pub



Cette discussion est classée dans : db, recette, ingrédients, dbrecet, dbingr


Répondre à ce message

Sujets en rapport avec ce message

Probleme d'insertion de données à partir d'un formulaire [ par sabou94 ] Bonjour, Cette page est l'ajout d'une nouvelle recette (de cuisine). Mon probleme est dans l'insertion des ingrédients. En effet, j'ai deux listes. D MySQL --> Savoir si ID 7 existe [ par ImmortalPC ] Salut, j'aimerai savoir s' il y a une technique plus appropriée que ce que j'ai fait pour savoir si ID  7 existe. $resultat = mysql_query('SELECT Tex db_dataobject et links.ini : deux questions [ par hansap ] bonjours, je suis en train de debuter un dev en utilisant db_dataobject,et je n'arrive pas a generer automatiquement le fichier links.ini, cela peut i Help, mysql _prefix [ par Petit Pingouin ] Bonjour, j'ai un ftp free mais je ne sais pas ce que je dois mettre dans la derniere ligne ou il y a les ????:/ : $mysql_host       = 'sql.free.fr' sql -> vérifié enregistrement [ par PAL59 ] Bonjour, alors j'ai un petit problème, je voudrais vérifié si un enregistrement existe dans ma base de donnée. Je veux qu'il vérifi si une ip est dé erreur lors de l'installation de Berkeley DB (version mismatch) [ par irkiouak ] Bonjour tout le monde,Je veux installer PHP avec le package OpenLDAP (pour créer les annuaires), or OpenLDAP nécessite l'installation de Cyrus-Sals  e Lire une ligne du db [ par zelze ] Bonjour.Je débute a l'instant en php et en sql, et j'ai deja un probleme de taille:J'ai me requéte SELECT * FROM table. Le probleme c'est que quand je souhaiter les anniversaires [ par jpdeion ] Bonjour,voici un code (que j'ai trouvé) pour souhaiter les anniversaires sur un site en fonction d'une base MySQL.J'ai une liste de 1200 personnes dan quand faire un mysql_close() [ par davwart ] Bonjour à tous. J'ai retrouvé une classe MySqlDb (classe pour gérer une db mysql donc..) ce matin. En regardant le code, je me suis rendu compte qu'à aide listage DB [ par CCJ ] bonjour. g un bleme car je ve lire ma DB mais ca foire : Notice: Undefined index: pseudo in c:\site\Tchat.php on line 45 voila la partie foireuse : wh


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,279 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales