ruby-on-rails - 我无法在 Activerecord 中复制此数据库模型
问题描述
我正在使用 Icecat 产品数据库中的数据在 Rails 中创建产品目录。我在复制 Category - FeatureGroup - Feature 结构时遇到了一些问题。
这是数据库的架构,您可以忽略词汇和语言,因为它们是用于翻译的。
这是每个产品的 xml 文件作为参考
在我的 rails 应用程序中,我创建了三个模型:
Category
FeatureGroup
Feature
Category
我在and 和andFeatureGroup
之间添加了多对多的关系。FeatureGroup
Feature
基本上我认为每个类别都有很多FeatureGroups
,每个 FeatureGroup 都有很多Features
.
但在 XML 文件中,每个特征节点都有这种结构
<ProductFeature Localized="0" ID="150078803" Local_ID="0" Value="OLED" CategoryFeature_ID="85325" CategoryFeatureGroup_ID="26690" ...
所以基本上这个特性不属于一个特性组,而是属于CategoryFeature_ID
和CategoryFeatureGroup_ID
我假设这些表是 Category 和 Feature 以及 Category 和 FeatureGroup 之间的连接表,但我无法理解架构。而且我不知道如何在我的 Rails 应用程序数据库中复制这个模式......
我尝试通过任务导入数据,但我对一组有大约 28410 个功能,所以我认为有问题。
解决方案
看起来 feature_group 表被用作 category_feature_group 和词汇表之间的连接表。如果您只需要 Category 和 Feature 模型,在我看来您不需要 FeatureGroup 模型。
一个特征通过 category_features 有很多类别。category_feature 表有一个 feature_id 和一个 catid。所以你可以连接这两个表。
如果您确实需要 feature_group 表,您可以使用 category_features 表中的 category_feature_group_id 和 category_feature_group 表中的 feature_group_id 通过您的 category_features 表和您的 category_feature_group 表找到它。
推荐阅读
- amazon-web-services - AWS Codepipeline - 一次在多个环境中部署
- git - 如何告诉 git 我只想添加子 repo 的当前文件内容,而不是 repo 作为子模块
- scipy - SciPy shgo 中可能存在的错误(意外的类型错误)
- typescript - 在非常简单的示例中,“可以用可能无关的任意类型实例化”
- python - 使用REGEX在python中提取两个没有问号的单词之间的确切单词
- android-studio - 文件已从 MediaStore 中删除但未从存储中删除
- python - 复制行值并粘贴到下一个空行,直到找到下一个值 python
- python - 将包含 x,y,z 坐标的列表作为 3 列与前导原子名称写入文件
- android - 如何从 4 个选项中选择一个?我正在构建测验应用程序
- c# - 如何为 AuthType.Kerberos LdapConnection 创建 NetworkCredentials?