Videos streaming images jeux et buzz
Connexion






Perdu le mot de passe ?

Inscrivez-vous maintenant !
Menu Principal
Communauté


« 1 2 (3)


Arsenick
 0  #41
J'aime glander ici
Inscrit: 13/12/2006 00:12
Post(s): 6503
Karma: 1045
Citation :

@Skity a écrit:
Qu'est ce qui te dis qu'au départ l'array est en PHP ?


@Wiliwilliam_ dans son premier post ?

Citation :

@Wiliwilliam_ a écrit:
je crée un array en php, basique, array("1"=>1,"2"=>1,"3"=>0,"4"=>1,"5"=>0,"6"=>1,"7"=>0);
Je stock en brut l'array dans un VARCHAR en SQL.
Ensuite j'aimerais récupérer cette valeur et pouvoir la réutiliser sous forme d'array comme précédemment.


Et la n'est même pas mentionner un passage par le front-end!

Citation :

@Skity a écrit:
Si je suis ton idée, pourquoi utilise-t-on des bases de données alors ? Dedans on stocke des données qu'on affiche en HTML.

C'est similaire a ce que tu viens de dire ....


En DB tu ne stock que les données non calculable afin d'en assurer la persistance.
Par exemple, "vieMax" et "degatReçu" mais pas "vieActuel" car tu peux le calculer en faisant "vieMax" - "degatReçu"(exemple bateau pour expliquer le principe)


Citation :

@Skity a écrit:
Donc on stocke du HTML traité par du PHP pour former le résultat final ?


Nope on stock les données qui une fois récupérée serviront à PHP pour reformer une page HTML.
Donc en DB "personnage.vieMax" = 9
et dans ton php :
<?php $vieMax = getFromDB("SELECT vieMax FROM personnage WHERE perso_ID = 8");?>
...
<h2>Points de vie maximum : <?php echo $vieMax; ?></h2>

L'avantage de ma méthode c'est que demain je décide de faire un logiciel java, pas besoin de changer ma DB.
Plus fort encore, je fais cohabiter le logiciel java et la page web sans aucun soucis.
C'est le principe du multi-tier: tu peux changer l'UI ou le data sans impacter les autres.

Citation :

@Skity a écrit:
Et tu stockes où les niveaux des items ? Tu créer une colonne par type d'item dans la table perso ?


Un attribut dans ta table de jointure => perso_ID, item_ID, item_Level.


Citation :

@Skity a écrit:
Sérieusement, faut être un peu logique aussi. En base il y aura que l'URI de l'image...


Début 2000 c'était courant pourtant et sur le fond c'est pas plus ridicule que de stocker la structure de ton objet.



Citation :

@-Flo- a écrit:
Il n'y a AUCUN cas où ce n'est pas possible. :)

Si, quand ton serveur est HS et que t'as pas de backup 😃.
En informatique, il n'y a pas de problème, il n'y a que des solutions qu'on a pas encore trouver... 😉

Et je confesse m'être emporter sur le terme "JavaScript".

Contribution le : 16/03/2016 21:14
Signaler

Invité
 0  #42
FantômeInvité
@-Flo- @skitty
Je comprends bien qu'on a pas toujours le choix, mais si on doit conserver les données d'un tableau dans la db, c'est que ça mérite ses colonnes pour faire les query adéquat ! ( Et puis, si on utilise du JSON,autant utiliser des db qui l'utilise pour stocker ce type de donnée,non ? )

Contribution le : 16/03/2016 21:50
Signaler

Skity
 0  #43
Je masterise !
Inscrit: 29/12/2013 23:48
Post(s): 2024
Karma: 521
Citation :

@-Flo- a écrit:
Ohlala ça devient un peu le bordel votre truc là... 😃

Entre celui qui dit que le json c'est le summum du stockage optimisé, celui qui pense que c'est du javascript, et celui qui fait une bdd relationnelle en stockant les relations en tant qu'objets json dans une colonne,... :lol:

@Wiliwilliam_ : Ton intuition de ne pas devoir créer une colonne par item dans ta table user est très bonne, mais ta solution l'est un peu moins. Pour régler ces problématiques de relations n/n, il suffit tout simplement de créer une troisième table spécifiquement dédiée au stockage de ces relations.

@Arsenick : Le json, ce n'est qu'une chaine de caractères formatée d'une manière spécifique. Ça n'est lié à aucun langage en particulier, et c'est justement très pratique pour cette raison, entre autres pour communiquer des données structurées entre applis utilisant des technos différentes.

@Skity : Le stockage via json est effectivement simple, mais au niveau optimisation de l'espace, je pense plutôt qu'on peut difficilement faire pire (à part en XML). Le nom des clés est réécrit à chaque entrée, idem pour la structure elle-même, et les valeurs sont stockées en occupant un max d'espace puisqu'elles ne sont pas typées.


T'inquiètes Flo, je sais que c'est loin d'être optimisé avec du JSON 🙂
Mais pour ce qu'à besoin Wili, sachant qu'il n'a peut être pas forcément l'habitude, je pense que ça reste l'une des solution relativement simple pour lui 🙂

Citation :

@Cornflake a écrit:
@-Flo- @skitty
Je comprends bien qu'on a pas toujours le choix, mais si on doit conserver les données d'un tableau dans la db, c'est que ça mérite ses colonnes pour faire les query adéquat ! ( Et puis, si on utilise du JSON,autant utiliser des db qui l'utilise pour stocker ce type de donnée,non ? )


Oui tout à fait. Pour ça qu'il aurait été mieux dès le départ de bien structurer la base de données en tables par type (item, perso, ...) et faire des jointure comme il a pu être évoqué depuis le début.

Cependant, Wiliwilliam a peut être déjà fait en une bonne partie de la structure et n'est peut être pas prêt à tout re faire. D'où trouver une solution d'une simple et de deux qui évite de tout re faire. C'est sûr qu'au bout d'un moment ça peut devenir une usine à gaz. Mais après, ça dépend à quel fréquence va être utilisé ton appli.

Contribution le : 16/03/2016 21:52
Signaler

Fichtre
 0  #44
Je m'installe
Inscrit: 20/11/2014 19:41
Post(s): 144
@wiliwilliam je pense que tu as besoin de pratiquer un peu plus le coté "structuration" avant de te lancer dans un projet.

Par exemple rien que le fait d’écrire tes bases/tables sur papiers pour avoir une vue claire de ce que tu devras coder t’enlève un poids énorme.

Là tu t'es lancé dans un projet sans savoir à la base comment faire quoi. A cause de ça tu te retrouves avec des contraintes et la peur de devoir reprendre un travail que tu as déjà fait, ce qui est à mon avis inévitable maintenant.

Tu veux donc faire un jeu, avec des objets, bien ! J'aime beaucoup cette idée, j'ai moi même fait un template dans le style "Livre dont vous êtes le héro" juste pour le fun. (si si, la programmation c'est fun!)

Pour les objets possédés, tu DOIS faire une table a part entière. Projette toi et imagine la gestion d'inventaire, la mise a jour etc. Si tu dois a chaque fois decompiler le champ objet, en faire un tableau, l'editer etc, ça devient vite lourd, a la fois dans le code mais aussi pour le serveur. Par contre si tu fais une requête directement sur l'ID de l'objet possédé, tout devient plus rapide !

Et puis c'est la base du php orienté objet de faire des choses comme ça. Redondance dans les requêtes et compagnie.
Et dis toi que si tu penses que c'est impossible, c'est que tu ne sais juste pas le faire.

Pour ton projet, il faut que tu passes par de l'asynchrone, c'est le mieux.

Et ce que dit Arsenick est vraiment à retenir.

Contribution le : 17/03/2016 04:41
Signaler

Invité
 0  #45
FantômeInvité
Je plussoie mon vdd, si je peux te conseiller de te renseigner sur les modèles E/A et logique avant de t'attaquer à la db 🙂 ( Bon,c'est de l'analyse, mais ça aide ! )

Contribution le : 17/03/2016 06:45
Signaler

Wiliwilliam
 0  #46
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38316
Karma: 19037
@Cornflake
C'est retenu 🙂 j'ai commencé ce projet entre autre pour apprendre le sql 😃
Ce projet est pour les koreusiens au passage :roll:
Sssshhhhhhhhhh!!!!! 😃

Contribution le : 17/03/2016 09:15
Signaler

Arsenick
 0  #47
J'aime glander ici
Inscrit: 13/12/2006 00:12
Post(s): 6503
Karma: 1045
Citation :

@Wiliwilliam_ a écrit:
@Cornflake
C'est retenu 🙂 j'ai commencé ce projet entre autre pour apprendre le sql :-D


C'est à mon sens le meilleur moyen d'apprendre: die and retry :lol: .
Et c'est la où je ne suis pas forcément d'accord avec @Skity: il vaux mieux recommencer 4 fois un truc complexe et faire un truc propre que de faire un truc sale parce que c'est plus simple.
Sa méthode est pas mauvaise en soi et je ne critique pas le côté fonctionnel (même si on pourrai croire), juste que je pense qu'on s'éloigne des bests practice de la POO.

Et pour ta DB, tu peux utiliser MySql Workbench qui permet de visualiser / crée facilement un diagramme de table.
Il permet aussi de générer le code de création des tables mais ça je le déconseil tant qu'on ne maîtrise pas la création.

Et tant qu'à y être, 3 bonnes devises (selon moi bien sur ) en informatique:
- Keep It Simple, STUPID! (KISS) => Plus un programme est simple, plus il est facile à maintenir, plus il est facile d'y ajouter des fonctionnalités. Fini l'époque code-pelote de laine où même le devs à peur de mettre les doigts parce que toucher une ligne ici va crée 15 bugs la-bas... ^^
- Apprendre à marché avant de vouloir courir => Les outils qui facilité la vie c'est bien mais sans maîtrise de la base, les meilleurs outils au monde donneront un résultat de merde parce que mal utiliser. Et surtout c'est plus facile de mettre les mains dans le cambouis quand l'outils à merder ^^.
- Un bon développeur est faignant => si on dois écrire 3 fois enfin copier/coller 2 fois (faut pas déconner :D) le même bout de code c'est qu'il y a moyen de faire du refactoring (=> KISS!).

Contribution le : 17/03/2016 12:05
Signaler

Invité
 0  #48
FantômeInvité
Je plussoie Arsenick et Fichtre et Cornflake : prends le temps, dès le début, de faire les choses "bien".

1/ Analyser ton projet avant même de commencer à coder. Tu évalues les objets à mettre en place et les interactions entre eux : t'as fait 90% du boulot.

2/ Et comme a dit Arsenick, si tu commences à avoir des soucis de dépendance, à recoder plusieurs fois la même chose, à devoir ajouter des attributs à tes classes, et toutes ces petites emmerdes ; pose-toi, re-analyse, recode des parties que t'as déjà codé s'il le faut. Ceci est NORMAL. Ton analyse de départ ne peux pas tout anticiper, et c'est pour ça que tu analyses ton projet, et ton code, tout au long de la production.

Peu importe la dimension du projet, l'analyse te fera toujours gagner du temps (pour le dit projet, ou pour les suivants :D)

Contribution le : 17/03/2016 14:36
Signaler

Skity
 0  #49
Je masterise !
Inscrit: 29/12/2013 23:48
Post(s): 2024
Karma: 521
Je plussoie mes VDDs 🙂

Contribution le : 17/03/2016 19:29
Signaler

Arsenick
 0  #50
J'aime glander ici
Inscrit: 13/12/2006 00:12
Post(s): 6503
Karma: 1045
@Wiliwilliam_ Si tu veux je peux te faire un petit diagramme avec quelques classes genre perso / item / inventaire si ça te parais plus clair qu'à l'écrit.

Contribution le : 18/03/2016 11:28
Signaler

Wiliwilliam
 0  #51
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38316
Karma: 19037
non non c'est bon 😃

Contribution le : 18/03/2016 11:30
_________________
>> Récompenses si tu passes en article <<
Signaler

AshySlashy
 0  #52
J'aime glander ici
Inscrit: 05/04/2007 11:48
Post(s): 8202
Karma: 1358
J'ai pas tout lu, mais je ne dirais qu'une chose:
Sérialise ! C'est rapide, c'est sale et ça marche ! Le reste osef, sauf si tu veux en faire ton métier.

Contribution le : 29/03/2016 16:59
Signaler


 Haut   Précédent   Suivant
« 1 2 (3)






Si vous êtes l'auteur d'un élément de ce site, vous pouvez si vous le souhaitez, le modifier ou le supprimer
Merci de me contacter par mail. Déclaré à la CNIL N°1031721.