Ruby on rails 设计决策
以一个典型的社交网站为例,它或多或少有以下几种模式:Ruby on rails 设计决策,ruby-on-rails,Ruby On Rails,以一个典型的社交网站为例,它或多或少有以下几种模式: User Blog, Posts Forums, Topics, Responses Wiki, Pages .... .... 我想介绍一个名为Site/Space的模型,其中每个用户可以有一个或多个站点/空间。我想为网站所有者提供一种选择许多功能或称之为应用程序/工具的方法 设计这个模型的最佳方式是什么——所谓的功能/应用程序/工具 注意:在许多情况下,每个特征可能与相应的模型不同。让我们考虑博客特性,通过启用博客功能,我应该能够联想
User
Blog, Posts
Forums, Topics, Responses
Wiki, Pages
....
....
我想介绍一个名为Site/Space的模型,其中每个用户可以有一个或多个站点/空间。我想为网站所有者提供一种选择许多功能或称之为应用程序/工具的方法
设计这个模型的最佳方式是什么——所谓的功能/应用程序/工具
注意:在许多情况下,每个特征可能与相应的模型不同。让我们考虑博客特性,通过启用博客功能,我应该能够联想到相应站点如何访问博客和POST,另一个例子是通过启用论坛功能,我应该能够联想到站点不仅可以访问论坛,还可以访问主题和响应模型。我需要这些检查,这样我就可以定义一个before_过滤器来检查特定站点是否有权访问内容
我查看了一些具有这种随需应变功能的开源rails应用程序,但通过查看表单属性,看起来它们有_blog、has post、,。。。字段隐藏在Sites表中,在我的情况下,它可能无法工作,因为这些模型的数量可能会增加。您仍然认为在站点表中添加这些布尔字段是最好的方法吗?在应用程序和数据库中的站点表之间定义多对多关系 应用程序 阿皮德 名称 ... 地点 站点ID 用户ID ... 网站应用 站点ID 阿皮德 从SiteApps中选择AppID,其中SiteID=
另请参见多态关联、has-many:through和/或has-and-own-to-many听起来像是解决方案的构建块。我会研究它们。但是,通过添加博客应用程序,我如何知道该网站可以访问博客模型和帖子模型?但是通过添加博客应用程序,我如何知道该网站可以访问博客和帖子模型?多态关联。目前还不清楚您想做什么,但对于处理可以引用多种类型项目的单数或复数关联,它们通常是正确的方法。我还将检查您的系统,看看您是否可以简化任何关系。