【发布时间】:2015-12-17 03:29:53
【问题描述】:
我正在尝试创建一个数据库来跟踪用户的项目。
例如,用户可能想要跟踪他们的汽车及其颜色、品牌和年份。他们将首先创建一个汽车“模型”,现在他们可以根据需要添加任意数量的新车。当他们制造汽车时,系统会提示他们输入颜色、品牌和年份以及通用项目信息。
用户可能还想跟踪他们的猫。但是猫“模型”与汽车“模型”有不同的领域。也许他们需要跟踪他们的猫的体重和品种。当他们想将 cat 类型的项目添加到数据库中时,我会提示他们输入重量和品种,而不是颜色、品牌和年份。
我对 Rails 或 SQL 不是很有经验,但我在想,当用户告诉我他们想要跟踪汽车时,我可以创建一个带有颜色品牌和年份的汽车表。当他们输入汽车时,我会将汽车存储为通用项目,并保留对汽车表的引用,我将在其中存储颜色品牌和年份。虽然不太确定我将如何实施,所以我对任何新想法持开放态度。在此先感谢您的帮助。
【问题讨论】:
-
您正在寻找多表继承。有几个 gem 可以使其更容易实现:github.com/hzamani/acts_as_relation
-
@BroiSatse 我查看了自述文件,看起来如果我想添加一种新型产品(即:“笔”),我需要在后端创建类。我希望有一种方法可以通过用户输入来创建产品类型。
-
啊,我明白了。在这种情况下,SQL 数据库在这里并不好,因为它需要具有固定模式的表。您正在寻找 NoSQL,mongo 可能是一个不错的选择 - 它允许您在单个索引中创建具有不同模式的记录。您可以尝试在 SQL 中实现它,但这需要大量工作。
-
Broistatse 如果你用多表的东西回答,我会为你投票
标签: ruby-on-rails