Ruby on rails 构建我的数据库

Ruby on rails 构建我的数据库,ruby-on-rails,database,Ruby On Rails,Database,我正在创建一个应用程序,它将从几个XML提要导入产品。在XML中指定了一个类别,例如T恤衫。问题是,不同的经销商指定的类别不同。例如,一个经销商称之为“T恤”,另一个经销商称之为“T恤”,第三个经销商称之为“短袖衬衫”,等等 我想以某种方式将这些类别映射到我自己的类别。所以我需要一些关于如何构建数据库的技巧 我的想法是创建一个“原始类别”表,其中包含经销商类别的名称和一个“类别id”,该“类别id”与我自己的“类别”表具有“归属”关系。然后,当我导入时,我只是试图找到一个具有匹配名称的原始类别,

我正在创建一个应用程序,它将从几个XML提要导入产品。在XML中指定了一个类别,例如T恤衫。问题是,不同的经销商指定的类别不同。例如,一个经销商称之为“T恤”,另一个经销商称之为“T恤”,第三个经销商称之为“短袖衬衫”,等等

我想以某种方式将这些类别映射到我自己的类别。所以我需要一些关于如何构建数据库的技巧

我的想法是创建一个“原始类别”表,其中包含经销商类别的名称和一个“类别id”,该“类别id”与我自己的“类别”表具有“归属”关系。然后,当我导入时,我只是试图找到一个具有匹配名称的原始类别,如果有,选择它,否则添加一个新类别。然后,我可以手动将这个新类别与我自己的一个类别关联起来

你明白我的意思吗?这是一个好方法吗?有更好/更有效的方法吗

如果这是个好主意。我如何在Rails中实现它?我应该使用这样的东西吗(我想我在API文档中看到过这样的东西):

我估计数据库中大约有4万到10万种产品

问候
莱纳斯是的,这是典型的设计。我通常称您的基本表为category,并称此别名表为categoryAlias。我对措辞很挑剔,但原始类别与“原始”无关,它只是你想要使用的类别

我建议的另一件事是,当你创建一个类别时,你也会创建一个categoryAlias

考虑到这些类别中的数据量,我可以提供一个实用的建议,即当您创建一个类别时,还要为其创建一个categoryAlias行,并使用相同的名称


这将使您的导入代码更容易,因为您只需要查询categoryAlias来确定某个类别是否已经存在,或者该类别是否有别名

谢谢你的回答。现在让我们称他们为经销商类别。在这里更容易区分它们。经销商类别是我从经销商那里得到的,类别是我将在自己的网站上展示的。我的另一个想法是只使用经销商类别作为查找表,然后将产品直接关联到适当的类别。也许这样会更有效率一些?这样一来,只有在导入时才会使用分销商类别,而在浏览网站时不会使用分销商类别。是的,这正是我所建议的——分销商类别相当于我描述的categoryAlias表。
# products model
has_one :category, :through => :raw_categories