J'ai une question sur les bonnes pratiques de conception de base de données et je voudrais vous tirer parti pour les pointeurs. Le projet a commencé simple.Django Database design - Est-ce un bon stragety pour les défauts par défaut
Hey nous avons un tas de questions que nous veulent avoir des réponses pour chaque projet (pas de problème)
qui se transforma en ...
Hey nous avons tellement de questions peuvent nous les regroupons en sections (yup nous pouvons le faire)
qui conduisent en ..
Peut-on pondérer ces questions et je ne veux pas vraiment certaines de ces questions pour mon projet (Oui, mais nous obtenons difficile)
et puis je pense qu'ils veulent avoir chaque section avoir son propre poids ..
Exigences
Donc il y a les exigences - Pour un nombre n de projet
- Laisser un membre admin la possibilité de sélectionner les questions pour un projet
- Laissez le membre admin de peser à nouveau ou utiliser les poids par défaut pour des questions
- Autoriser le membre administrateur à pondérer les sections
- Autoriser les membres de l'équipe à répondre aux questions.
Voici donc ce que j'ai imaginé. S'il vous plaît ne hésitez pas à commenter et à fournir de meilleurs exemples
models.py
from django.db import models
from django.contrib.sites.models import Site
from django.conf import settings
class Section(models.Model):
"""
This describes the various sections for a checklist:
"""
name = models.CharField(max_length=64)
description = models.TextField()
class Question(models.Model):
"""
This simply provides a simple way to list out the questions.
"""
question = models.CharField(max_length=255)
answer_type = models.CharField(max_length=16)
description = models.TextField()
section = models.ForeignKey(Section)
class ProjectQuestion(models.Model):
"""
These are the questions relevant to the project
"""
question = models.ForeignKey(Question)
answer = models.CharField(max_length=255)
required = models.BooleanField(default=True)
weight = models.FloatField(default = XXX)
class Project(models.Model):
"""
Here is where we want to gather our questions
"""
questions = models.ManyToManyField(ProjectQuestion)
Questions immédiates:
- Quand je commence un projet - des idées sur la façon de « préremplir » thequestions (et finalement les poids) pour le projet? Ce n'est pas comment charger les questions. Pour cela nous avons json. Je veux de savoir comment "copier" les questions de modèle à le projet?
- Existe-t-il une méthode généralement acceptée pour faire ce processus qui me manque? Fondamentalement, l'idée que vous faites référence à les questions sur votre propre poids par défaut , et de stocker la réponse ?
- Il semble qu'un bon mandrin du travail sera fait dans les vues et qu'il y aura beaucoup de vérification à y faire? Est-ce que c'est OK?
Encore une fois - n'hésitez pas à me donner de meilleures stratégies !!
Merci
D'accord! C'est ma question - comment faites-vous ce lien en utilisant un ORM. !! Super – rh0dium