在处理具有类别的数据时,例如视频+流派和相册+照片,有哪些方法可以将这些关系存储在数据库中?例如,如果我有一堆图像(比如说A,B,C,D),作为用户我将它存储到一个名为“我的家庭”的类别中,那些图像怎么能与那个类别相关?
答案 0 :(得分:1)
您可以使用“多对多”关系或“多对一”关系 类型的视频是多对多的 相册中的照片是多对一或多对多的 分类的图像是多对多
在基于Python的Django应用程序中,您的架构可能看起来像这样......
from django.db import models
class Genre(models.Model):
name = models.CharField(max_length=50)
class Video(models.Model):
title = models.CharField(max_length=500)
synopsis = models.TextField()
genres = models.ManyToManyField(Genre)
video_file = models.FileField(upload_to="movie_files_folder")
Django API抑制了最终将使用这些模型构建的SQL模式的详细信息。它还抑制了这两个模型的关联程度。根据我的经验,这些细节不是使数据库驱动的应用程序正常运行所必需的。
据我所知,Video.genres
只是一个主键列表。当您致电Video.genres.all()
时,它会使用[5, 7, 9]
等主键列表来查找Genre
表中存储的数据