Bonjour je préviens ça va fuser de questions en tout genre ça va être un vrai mind fuck!

Donc tout d'abord mon projet. J'ai dans l'idée de réaliser un reddit.com, un digg, etc.. mais a ma façon et en français.

1- La BDD
Donc voici pour le moment la structure de ma bdd ci-dessous. Je voudrais que vous la regardiez voir si il n'y a rien qui cloche que se soit dans le type du champ, dans son nom, ou dans le nombre de caractères (varchar) bref lâchez-vous n'ayez pas peur.

j'ai retiré l'image pour l'a sécu du site
Donc une petite explication s'impose pour vous expliquer ma logique.

posts: Rien de bien compliqué c'est les posts avec des champs basiques.
Avec un champs score car les utilisateurs auront la possibilité d'ajouté ou de retirer 1 point.
Un champ image pour si ils veulent joindre une image
Un champ vidéo_id si ils veulent joindre l'url d'une vidéo youtube, daylimotion, vimero, (youporn? :p ) qui s’incrustera dans le post. Je sais pas comment encore mais je trouverai!

categories: pas de surprise. Juste un style qui me servira a donner un background différent pour chaque catégorie.

messages: un système de MP j'ai regardé plusieurs script de mp et j'ai pondu ça.

citations : Il y aura des citations en dessous du logo. Après est ce qu'il faudrait pas plutôt les mettre dans un table en js... a vous de me le dire :p.

comments: les commentaires des posts. Même principe on peut voter +1 ou -1 joindre une image ou une vidéo.

pages: système de pages comme on peut voir sur le tuto de grafik

config: Mon bordel du genre mon adresse mail et si le site est accessible ou en maintenance.

Questions variées:

S i je veux que le total des points d'un membre s'affiche sur le profil qu'elle est la meilleur solution?
a) je calcule tous les points qu'a obtenu le membre pour ses posts.
b) je fais un cron qui se lance toutes les heures pour calculer les points du membres et mettre a jour dans un champs score dans la table membre

Q u'elle est la meilleur manière pour éviter la triche des votes?

V ous avez sans doute remarqué que je n'ai pas de table membres. Tout simplement car je compte utilisé celle de cakephp qui est dans la doc au vue de mon noobisme. Cependant quand je regarde dans la doc il y a un simple système et le compliqué.
Le simple:
CREATE TABLE users (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50),
role VARCHAR(20),
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);

Et le compliqué avec les groupes etc...
Lequel serait plus adapté? Sachant qu'il n'y a que 2 niveaux membre et admin. L'admin pourra juste supprimer un post dans le cas ou celui-ci est illégal et accéder a une admin très simpliste ou il pourra gérer la table configs.

O ù faut il mettre les cron dans cake?

Voila les premiers problèmes auxquelles je me suis confronté. D'autres viendront par la suite. Sinon ca ne serait pas drôle... :D.

merci

4 réponses


Trop de textes dur dur :(
Là tu demande un audit de ton application c'est un poil trop demandé ...
Score => une table séparé pour éviter le multivote
User => crée un champ role peut suffir, au pire une table groupe
Cron => une action dans un controller, et tu check l'ip qui l'appel si tu veux être 200% secure

Hotgeart
Auteur

j'ai préféré condenser toutes mes interrogations dans un topic plutôt que de demander au compte goutte.
Par contre je ne comprends pas pour la table score. Tu peux expliquer?

tu fais une table contenant le post_id et le user_id avec un counter cache sur posts (pour éviter le vote multiple de utilisateurs

Hotgeart
Auteur

Ok je vois merci, je pensais qu'il y avait plus simple.
Il me reste juste à savoir ceci:
Si je veux que le total des points d'un membre s'affiche sur le profil qu'elle est la meilleur solution?
a) je calcule tous les points qu'a obtenu le membre pour ses posts.
b) je fais un cron qui se lance toutes les heures pour calculer les points du membres et mettre a jour dans un champs score dans la table membre