Domanda

Sto appena iniziando a conoscere la progettazione del database. Per il mio primo progetto ho realizzato un semplice blog con Padrino e ora voglio qualcosa di un po 'più impegnativo per me. Dal momento che sono un po 'un pazzo, i miei amici mi chiedono sempre di prenderli in prestito. Quindi naturalmente ho molti libri che fluttuano in qualsiasi momento.

Ora mi piacerebbe avere un'app che mi consente di tenere traccia dei libri, cioè: ogni amico ha un account », ho molti libri» «e i miei amici possono affittare libri per un dato periodo di tempo. Ma non sono del tutto sicuro di come modellare le associazioni tra i diversi modelli.

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

Lo apprezzerei se potessi dirmi se sono sulla buona strada con questo design o forse mi indica risorse che potrebbero aiutarmi. Come posso gestire efficacemente un libro »sparito« e poi disponibile per l'affitto?

Grazie

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top