PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#26 30-09-2014 14:28:01

Darkangel
Membre
Inscription : 20-11-2009
Messages : 128

Re : Reflexion sur base de donnée avant programation

Bon bah me voila dans une sacré panade alors car je ne connais que mysql.
pas sur d'avoir bien cerné ce que vous voulez dire pour les langues mais je vais y cogiter à deux fois.
Pour les amendements je connais tous les cas possibles mais j'envisagerai don de supprimer l'entitee extension

et de créer une amendement de sorte a ce que je puisse faire un enum des cas possible et de rajouter un champ date si seulement cas extension periode..
ca serait correct?

de meme et au sein de mon modèle en construction:
https://drive.google.com/file/d/0B0Rb6S … sp=sharing

deux questions:
cela vous semble t'il deja correct?
Une personne travaillant forcement pour un membre et pour un projet,  je devrais donc rattacher la table à Project has members non?
mais parallèlement cette personne va travailler sur 1 ou plusieurs WPs.
dois je donc prévoir une table qui lierai àla fois Project has members et wp?

Hors ligne

#27 30-09-2014 15:27:27

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Reflexion sur base de donnée avant programation

Bonjour,

Bon bah me voila dans une sacré panade alors car je ne connais que mysql.

Je vous le dit en toute sincérité, il n'est pas sérieux d'envisager un tel projet dans un contexte MySQL, et d'autant plus dans un contexte "médical". Envisagez même SQL Server Express (gratuit) plutôt que postgreSQL. Si vous en voulez les raisons vous pouvez me contacter par Skype: pseudo: admin_tseonline.

Si une extension de projet correspond à un type d'amendement, alors oui sans hésitation: supprimez les entités projet_extension et wp_extension et remplacez-les par votre entité AMENDEMENT.

Par contre évitez le domaine ENUM qui est une dénormalisation que je déconseille vivement. Il est préférable de créer une table de paramétrage pour définir les types au même titre que l'entité ROLE du modèle que je vous ai fourni. C'est la table correspondante qui servira à remplir un selectbox de votre formulaire de saisie. A chaque type vous aurez son id_technique que vous pourrez communiquer à la base. (essayez de communiquer que des entiers de préférence dans un contexte web).

Votre modèle est dangereux et me semble inexact par rapport à ce qui a été dit.
Il ne peux y avoir de dépendance directe entre un projet et un "subcontractor". En effet seul les partenaires sont autorisés à intervenir sur un projet. Un sous-traitant quant à lui n'interviendra que pour le compte du partenaire autorisé pour un projet donné, et accepté préalablement comme tel dans le système pour être en mesure d'effectuer un travail sur un wp donné.
Votre modélisation d'adresse ne gère pas d'historique non plus. C'est toujours la dernière en vigueur qui est prise en compte, ce qui va vous obliger à gérer de la redondance à ce niveau par rapport à la gestion d'historique de facturation. Vous allez rendre votre système moins performant et plus "obèse" que nécessaire.

++

EDIT: Vous y gagnerez beaucoup sur un projet d'envergure comme celui-ci à créer un référentiel d'adresse unique pour l'ensemble applicatif et de créer ensuite une historisation par référence sur les entités où cela est requis. De plus cela vous offrira la possibilité de faire une recherche d'adresse sur l'ensemble du système en quelques ms quelque soit la volumétrie à terme de votre solution.

Dernière modification par Jc (30-09-2014 17:37:58)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#28 30-09-2014 15:40:18

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Reflexion sur base de donnée avant programation

Je vois que JC n'aime pas le libre wink big_smile
a++

Hors ligne

#29 30-09-2014 15:45:53

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Reflexion sur base de donnée avant programation

@Pierrot: J'utilise autant postgreSQL (qui est libre) que SQLServer. MySQL je l'ai laissé tombé y a un peu plus de 2 ans maintenant, car il ne me permet pas d'assurer la qualité de service que j'ai besoin de fournir et que mes clients me demandent. J'essaye d'utiliser les outils adaptés aux exigences techniques requises, et en toute objectivité, sinon je ne pourrais pas être/rester crédible au niveau maîtrise d'ouvrage et des recommandations techniques faites pour la maîtrise d'œuvre (et d'autant plus quand je dois prendre la responsabilité globale sur le projet et fournir des garanties à ce niveau.)

PostgreSQL est souvent très bien et suffisant pour beaucoup de projets, mais reste trop limité techniquement pour d'autres.

++

Dernière modification par Jc (30-09-2014 15:49:59)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#30 30-09-2014 20:36:59

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Reflexion sur base de donnée avant programation

c'était juste une remarque on pti JC wink
remarque, les sites à très grande audience n'hésitent pas à utiliser le couple PHP<->MYSQL wink
il ne doivent pas être gênés par les problème techniques wink
a++

Hors ligne

#31 30-09-2014 22:44:47

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Reflexion sur base de donnée avant programation

les sites à très grande audience n'hésitent pas à utiliser le couple PHP<->MYSQL wink
il ne doivent pas être gênés par les problème techniques

Oui je sais c'est un argument récurrent. J'ai juste pas les moyens d'avoir une infrastructure surdimensionnée et je ne dispose que de 24h par jour pour gérer ce que j'ai à gérer. Pas envie de faire compliqué quand je peux faire simple et quand le jeu n'en vaut pas la chandelle.
Quand on développe en base de données épaisses on apprends vite à connaître les limitations réelles d'un moteur de SGBDR et ce qu'il vaut wink

EDIT: Qui dit limitations réelles, dit possibilité de faire ou pas, sans chercher à savoir si c'est compliqué ou simple: vues matérialisées, parallélisme, gestion des verrous, qualité isolation des transactions, tolérance 0 en termes de pertes de données, gestion des espaces disques, limitations analyseur plans de requêtes (qualités et performances algorithmes), respect conformité standard SQL, gestion CTE, fonctions de fenêtrage, capacité de montée en charge en accès concurrentiels, gestion Xquery natif, gestion FullText intégrale, etc...

Dernière modification par Jc (01-10-2014 14:03:51)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums