Rails: 为存档创建数据库结构

Rails: create database structure for an archive

我有一个关于数据库部分设计的一般架构问题。我想为一个教育实体实现一个档案,并有一个表单字段,我可以在其中查询档案并获取特定的条目子集。一切都始于文章和讲座的档案。我将两者视为相似,并使用了一个名为 resources 的 table,其中包含我在这两种情况下所需的所有数据的列。这样我就可以在我的 Rails 应用程序中编写如下内容:

Resources.find(:all).where('title LIKE ?', "%#{params[:searchTitle]}%")

并获取标题中包含特定字符串的所有资源。

现在我想扩展档案以包含更广泛的资源集,其中包含教育或研究活动的文档。我会有 items 以及你可以称之为 collectionssub collections。项目可以是诸如表格、文本、图像、杂志、书籍、音乐、视频、绘图、模型、地图之类的东西。 Collections 类似于课程、讲座、练习、项目、展览。一门课程可以有多个练习和讲座。一个练习可以有多个项目,等等。但是可能有一些项目没有练习或课程。我可能会选择在资源中添加关键字来描述内容。

查询应生成一个视图,其中包含单个项目的所有相关条目并且 collections 在一个列表中。

我通常会为每个资源创建一个 table,以尽可能减少重复数据。但我通常有一个 table 作为我查询的入口点,现在会有 14 个资源 tables + 加入 tables + tables 例如作者。我应该如何设置这样一个数据库的结构,以防万一我必须为每个资源创建单个 tables:How do I query 14 tables and display the result in one list.

提前致谢。

在您的控制器操作方法中,

resources1 = Resource1.where("title LIKE ?", "%#{params[:searchTitle]}%")
resources2 = Resource2.where("title LIKE ?", "%#{params[:searchTitle]}%")
resources3 = Resource3.where("title LIKE ?", "%#{params[:searchTitle]}%")
@total_results = resources1 + resources2 + resources3