Это довольно простой вопрос, я новичок:)
Я строю библиотечную базу данных, используя Django & MySQL.База данных имеет понятия книг и пользователей и транзакций , когда пользователь вынимает или возвращает книгу.
Мне нужночтобы иметь возможность:
- получить полный список транзакций для конкретной книги - кто ее проверил, и когда
- быстро получит текущий статус книги.
Я думал об использовании таких таблиц, но есть ли проблемы с этим дизайном?
class Book(models.Model):
name = models.CharField()
class User(models.Model):
name = models.CharField()
TRANSACTION_TYPES = (
('I', 'Check in'),
('O', 'Check out'),
)
class Transaction(models.Model):
book = models.ForeignKey(Book)
user = models.ForeignKey(User)
type = models.CharField(max_length=1, choices=TRANSACTION_CHOICES)
date_added = models.DateTimeField(auto_now_add=True)
Это будет работать нормально для получения полного списка транзакций.Но если я хочу получить текущий статус книги, мне нужно будет просмотреть все транзакции книги и найти самые последние.
Это разумно?Это будущее?
Я не предвижу, что база данных станет такой большой, но есть ли более эффективный способ сохранить текущее состояние книги без отмены нормализации базы данных?
Все предложения с благодарностью приняты!