我刚开始学习有关数据库设计。对于我的第一个项目,我用padrino做了一个简单的博客,现在我希望对我有更多挑战。 由于我有点像一本书的坚果,我的朋友总是问我借他们的书。所以很自然,我在任何时候都有很多书。简单的租赁数据库的设计与DataMapper的
现在我想要一个应用程序,让我跟踪这些书籍,即:每个朋友都有一个»账户«,我有很多»书籍«,我的朋友可以在任何特定的时间段租用书籍。 但我不完全确定如何建模不同模型之间的关联。
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
我会很感激,如果你能告诉我,如果我在正确的轨道上采用这种设计或可能指向我的资源,可以帮助我。 我该如何有效管理一本正在“走了”,然后再次出租的书?
感谢
谢谢你的回答。我完全忘记了你必须立即归还所有书籍的事实。但我仍然希望能够看到有人借了一笔贷款。如果添加另一个表“Book_Loan”作为FK'loanID'和'bookID'来连接它们,会有帮助吗? – nlw 2012-02-24 19:46:34
@nlw - 发布必要的修改。 – 2012-02-24 21:29:55