database design - Django many to many relations -
i have 3 models, i'm not sure how design best. 1 song model, 1 artist , show model
class artist(models.model): name = models.charfield(max_length=255) label = models.charfield(max_length=255, null=true) def __str__(self): return self.name class show(models.model): name = models.charfield(max_length=255) def __str__(self): return self.name class song(models.model): title = models.charfield(max_length=255) artist = models.manytomanyfield('artist') show = models.manytomanyfield('show') duration = models.floatfield() def __str__(self): return '%s - %s (%s)' % (self.title, [artist.name artist in self.artist.all()], self.duration) the things wasn't sure relations. artist has songs, song can have multiple artists, , show can (or has) multiple songs , songs can in multiple shows essentially. right design here manytomany fields?
on database level it's pretty obvious: artist (m:n) song (m:n) show. implements situations described , assumes artist participating in show through singing song (he can not participate without performing something).
the model go this:
class artist(models.model): songs = models.manytomanyfield('song') class song(models.model): artists = models.manytomanyfield('artist') shows = models.manytomanyfield('show') class show(models.model): songs = models.manytomanyfield('song')
Comments
Post a Comment