2012-05-19 3 views
2

Для пользователей на веб-сайте, что является лучшим способом хранения информации в Django с базами данных. Веб-сайт, над которым я работаю, имеет следующие разделы:Хранение информации о пользователе Django

  1. Вид чата, где пользователи могут оставлять комментарии.
  2. Набор документов, открытых для других пользователей.
  3. Отзывы для каждого документа

Вопрос в том, где должны храниться документы? (Я не знаю, сколько у каждого будет). Для каждого документа, где должны храниться обзоры? (Я не знаю, сколько отзывов будет).

Я очень новичок в Django и только что начал книгу, которую я купил, но мне нужно начать планирование, чтобы сделать это с помощью август (возможно ли это для кого-то нового?).

ответ

5

Прямо вперед OOP, вы должны просто создать модель (объект) для каждого артефакта - например:

class ChatComment(models.Model): 
    owner = models.ForeignKey(User) 
    when = models.DateTimeField(auto_now_add=True) 
    message = models.CharField(...) 
    ... 
    chatroom = models.ForeignKey(ChatRoom) 

class PublicDocument(models.Model): 
    owner = models.ForeignKey(User) 
    created = models.DateTimeField(auto_now_add=True) 
    title = models.CharField(...) 
    payload = models.FileField(...) 

class DocumentReview(models.Model): 
    author = models.ForeignKey(User) 
    document = models.ForeignKey(PublicDocument) 
    when = models.DateTimeField(auto_now_add=True) 
    text = models.CharField(...) 

И так далее ...

1

ответ Пауло пятно на. Но я также хотел бы добавить, что вы должны внимательно прочитать документацию для FileField.

Документы обычно хранятся в каталоге в файловой системе. База данных (в соответствии с ответом Пауло) будет содержать ссылку на местоположение. Django может сделать это для вас почти автоматически, используя FileField, чтобы просто прочитать это и убедиться, что вы это понимаете.

Смежные вопросы