我刚刚开始学习数据库设计。对于我的第一个项目,我用 padrino 做了一个简单的博客,现在我想要一些对我来说更具挑战性的东西。由于我有点书迷,我的朋友总是要求我向他们借书。所以很自然地,在任何给定的时间,我都会有很多书在四处飘荡。
现在我想要一个可以让我跟踪书籍的应用程序,即:每个朋友都有一个»Account«,我有很多»Books«,我的朋友可以在任何给定时间段内租用书籍。但我不完全确定如何对不同模型之间的关联进行建模。
class Friend
include DataMapper::Resource
property :id, Serial
property :name, String
property :surname, String
has n, :loans
end
class Loan
include DataMapper::Resource
property :id, Serial
property :started_at, Date
property :returned_at, Date
belongs_to :friend
has n, :books
end
class Author
include DataMapper::Resource
property :id, Serial
property :name, String
property :surname, Integer
has n, :books
end
class Book
include DataMapper::Resource
property :id, Serial
property :title, String
property :year, Integer
property :returned, Boolean
belongs_to :author
belongs_to :loan
end
如果您能告诉我这个设计是否走在正确的轨道上,或者指出可以帮助我的资源,我将不胜感激。我怎样才能有效地管理一本书“消失”,然后又可以出租?
谢谢