【发布时间】:2018-10-14 17:23:02
【问题描述】:
我正在构建一个显示模块列表的应用程序,例如 Udemy。下面是我想要实现的简化示例。
(这不是数据库表,这是界面说明)
No Module name Type
1 Introduction Video
2 What is Composer? Video
3 Model View Controller Video
4 Blade Templating Engine Video
5 Quiz - First Quiz Quiz
如您所见,这是您通常会在 Udemy 或 Lynda 等在线教育网站上看到的内容。
显示模块列表,每个模块可以是视频模块或测验模块。
视频模块在数据库中有一个视频 URL 列。而测验模块与视频模块完全不同。它会有问题和答案。
我们可以对 CMS 中的模块进行排序,因此,每个模块在数据库中都会有一个排序列。
问题是:
我们如何在数据库中建模模块 -> 视频、模块 -> 测验?我必须建立什么样的表关系?
【问题讨论】:
-
@RossWilson 嗨,罗斯,感谢您的回复。使用多态关系,我们如何解决
Module -> { Video, Quiz }关系?根据 Laravel 文档,我认为文档上的comments在我的情况下是modules。对吗? -
阅读 Laravel 文档后,文档中的多态关系与我的示例不同。在 Laravel 文档中,
Video可以有多个 cmets,Post也可以有多个 cmets。但是Comment不是Video,Comment也不是Post。这是不同的,因为在我的例子中,Video是一个Module而Quiz也是一个模块。
标签: php database laravel database-design