Bonsoir à tous,
Voici mon site Internet. Comme vous pouvez le constater, il me permet de faire suivre aux internautes les actualités du cinéma et des sorties DVD. J'y insère aussi mon avis sur les films que je regarde afin de pouvoir aider l'internaute dans son choix s'il désire regarder un film par exemple.
Je souhaiterais élargir mon site pour permettre aux internautes de s'inscrire sur mon site, afin d'y laisser leurs avis sur les films qu'ils regardent eux aussi. Pour cela, j'aimerais refaire mon site sous symfony afin d'y intégrer un backend et une gestion des utilisateurs. Je repars donc de zéro en commençant par la base de données. C'est pour cela que je viens vous voir afin de valider ma base pour commencer plus tard le code.
Je rajoute que je suis novice sous symfony, j'ai débuté en décembre dans une entreprise et je travailler dessus 2 jours par semaine.
Voici mon schéma que j'ai créé : ici
et voici le schéma.yml qui en découle :
Si je vous le donne, c'est pour que vous puissiez le critiquer et que je puisse l'améliorer. Je vais vous l'expliquer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 films: actAs: { Timestampable: ~ } columns: id_films: { type: integer, notnull: true, unique: true } titre: { type: string(255) } affiche: { type: string(255) } date_sortie_cinema: { type: string(25) } date_sortie_dvd: { type: string(25) } date_sortie_cinema_1: { type: date } date_sortie_dvd_1: { type: date } date_avis: { type: datetime } date_jaquette: { type: date } realisateur: { type: string(65) } acteurs: { type: string(255) } genre: { type: string(255) } duree: { type: string(10) } resume: { type: string(2555) } avis: { type: string(2555) } video: { type: string(255) } titre_secret: { type: string(255) } secret: { type: string(2555) } bonus_dvd: { type: string(2555) } bonus_bluray: { type: string(2555) } jaquette: { type: string(255) } relations: avis_utilisateurs: class: avis_utilisateurs refClass: films local: id_films foreign: id_avis_utilisateurs foreignAlias: avis avis_utilisateurs: actAs: { Timestampable: ~ } columns: id_avis_utilisateurs: { type: integer, notnull: true, unique: true } date_avis: { type: string(25)} date_avis_1: { type: date, notnull: true } avis: { type: string(2555), notnull: true } is_active: { type: boolean, notnull: true, default: 0 } relations: utilisateurs: class: utilisateurs refClass: avis local: id_avis foreign: id_utilisateurs foreignAlias: utilisateurs utilisateurs: actAs: { Timestampable: ~ } columns: id_utilisateurs: { type: integer, notnull: true, unique: true } nom: { type: string(100), notnull: true } prenom: { type: string(100), notnull: true } date_naissance: { type: date } pseudo: { type: string(40), notnull: true } mot_de_passe: { type: string(50), notnull: true } email: { type: string(100), notnull: true } is_super_admin: { type: boolean, notnull: true, default: 0 } is_active: { type: boolean, notnull: true, default: 0 }
Pour la table films :
- Alors bon un id pour qu'il y ait un id par film qui s'autoincrémente
- Son titre
- L'affiche (hébergé, donc des caractères)
- date_sortie_cinema pour écrire la date en tout lettre (17 janvier 2010)
- De même pour la date de sortie en dvd
- date_sortie_cinema_1 pour la format date afin que dans les requêtes je puisse faire un tri par rapport à la date.
- Idem pour la date de sortie en dvd
- La date de mon avis avec l'heure, il peut arriver que je mette deux avis par jour...
- Réalisateur, acteurs, genre, duree, resume, avis => des caractères
- La vidéo, je récupère un lien youtube, si je créé mon lecteur vidéo (ce que j'aimerais), cela pourrait évoluer...
- Un secret du tournage avec son titre
- Les bonus dvd et bluray qui peuvent être long...
- La jaquette hébergé sur hosting, je dois donc insérer une url pour l'afficher.
- Cette table est liéé avec la table avis_utilisateurs, car sur la page d'un film, les utilisateurs inscrits et connectés pourront ajouter leur avis sur le film.
La table avis_utilisateurs :
- Son id
- La date en toute lettre comme pour le film pour l'afficher
- La date en date pour faire un tri
- L'avis de l'internaute
- Si l'avis est actif pour que je puisse controler que l'avis ne soit pas n'importe quoi quand même.
- Cette table est liée avec la table utilisateurs car les utilisateurs mettents des avis.
La table utilisateurs
- son id
- Un nom, prénom, date de naissance, pseudo mot de passe et email de contact.
- si il est admin ou pas, normalement il n'y aurait que moi
- Si le membre est actif ou pas, si je décide de le supprimer en cas de non respect des règles...
Voilà un gros tour d'horizon, donc n'hésitez pas à critiquer, c'est la première fois sous symfony pour le fichier schema.yml. Ensuite, je pense à mes différents champs date qui pourrait se simplifier grâce à des fonctions ou quoi, s'il y a des champs qui seraient plus utiles, ou par rapport à mes relations parce que là j'en ai aucune idée de comment cela s'écrivait.
Sur ce, merci d'avance pour vos réponses !
Partager