Questo non è tanto una revisione specifica del codice, ma una revisione concettuale quando si converte un diagramma di classe in codice e quindi eventualmente in un database, in Python. So come aggiungere cose a un database, ma l'ho sempre fatto direttamente con SQL dai moduli e non dalle classi, (che credo sia chiamato ORM)
Ho il seguente diagramma di classe
Hocreatoleseguenticlassiperabbinareildiagramma
classMember:def__init__(self):self.memid=0self.memname=""
def addMember(self, memid, memname):
self.memid = memid
self.memname = memname
def searchbyid(memid):
return 0
def searchbyname(memname):
return 0
def newcust(self, custid, custname):
self.custid = custid
self.custname = custname
class Rental:
def __init__(self):
self.title = ""
self.sartdate = ""
self.enddate = ""
self.cost = 0
def addrental(self, title, startdate, enddate, cost):
self.title = title
self.startdate = startdate
self.enddate = enddate
self.cost = 0
class Movie:
def __init__(self):
self.movieID = 0
self.title = ""
self.genre = ""
self.runtime = 0.0
def newMovie(self, movieID, title, genre, runtime):
self.movieID = movieID
self.title = title
self.genre = genre
self.runtime = runtime
Dimentica la sintassi specifica (ad esempio, tipi di dati, best practice, ecc.) La mia domanda è: come faccio a far funzionare questi elementi per modellare lo scenario del mondo reale che ho? So che posso creare un membro come questo:
member = Member()
member.addMember(1, "John Sampson")
E so che posso creare un film come questo:
movie = Movie()
movie.newMovie(47, "Die Hard", "Action", 94.27)
Ma quando mi unisco a queste cose insieme per creare un noleggio, lo farei in questo modo?:
member.rental = Rental()
member.rental.addrental(movie.title, "07/02/2018", "18/02/2018", 10)
Le mie ulteriori domande sono:
Come faccio a collegare in modo specifico le classi come ho nel mio diagramma (1 membro che ha molti noleggi, ecc.) o il collegamento verrà creato solo quando i dati vengono passati a un database?
Come creo una funzione di ricerca membro? Sarebbe solo in grado di funzionare una volta che avessi un database installato e funzionante?
Nel mio esempio sopra, aggiungo Die Hard come il film che hanno noleggiato perché è l'unico per cui ho un oggetto. Tuttavia, nel mondo reale, potevano scegliere qualsiasi film, quindi presumo che dovrei cercare il film che hanno inserito e collegarlo da lì. Tuttavia, come dovrei cercare un film quando gli oggetti sono stati creati e prima che siano stati aggiunti al database? Dovrei aggiungere ogni oggetto a un elenco man mano che vengono aggiunti?
Mi sto bloccando concettualmente tra l'azione di creare classi semplici e il metodo per farle lavorare insieme in modo che sappiamo che un membro ha noleggiato questo video specifico e sappiamo che l'affitto era per questo film ecc.