2014-01-28 7 views
2

Я пытаюсь создать модель для приложения Django для обработки фактурирования, но я не уверен в правильном подходе. Счет-фактура должен быть моментальным снимком значений в данный момент времени. Если вы измените цену товара сегодня, это не повлияет на предыдущий счет-фактуру. Мне также необходимо сохранить полную историю изменений для каждого счета-фактуры.Проектирование модели, которая сохраняет историю изменений

Счет-фактура может содержать до сорока различных атрибутов, большинство из которых останутся пустыми. У счета-фактуры есть и другие адреса, такие как отправитель, получатель и почтовые адреса. Счет также содержит строки, каждая из которых имеет свои собственные значения.

ответ

0

Вам необходимо настроить таблицу транзакций для записи изменений в счетах-фактурах. В этой таблице могут быть ссылки на адресные таблицы для разных адресов. Вы хотите сохранить этот счет-фактуру Таблица транзакций в таблице клиентов, чтобы вы имели доступ к сделкам в любое время.

Django имеет встроенные поля для сохранения дат, поэтому вы можете использовать их в разных местах для автоматической записи дат в ваших таблицах транзакций. Примеры этих полей в Django являются:

from django.db import models 

class MyModel(models.Model): 
    created = models.DateField(auto_now_add=True) 
    modified = models.DateField(auto_now=True) 

Моя рекомендация будет создать ссылку в таблице клиента как Many-to-Many в таблице транзакций. И каждый раз, когда происходит/изменяется счет-фактура. Присоединитесь к этому полю. Затем вы можете ссылаться на таблицу транзакций по дате, самому последнему и т. Д., Чтобы получить необходимую информацию. Вы можете установить BooleanField для текущего счета-фактуры и т. Д.

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