0

考虑库存管理系统的场景。Inventory 有许多类型的项目,每个项目都有自己的表和列。一张、两张或十二张表不足以描述过多的物品类型,因为它们非常不同。例如,像 BIKES 一类的项目的某些属性与 CARS 的属性不同。开发人员考虑到成千上万的项目类型并手动将它们合并到每个模型中是很乏味的。

有没有办法让用户自己生成模型?从而生成自己的 SQL 表等......这个问题还有另一种方法吗?(也许使用语义网技术)

来自 Spring Framework,我对 RoR 开发相当陌生。

提前致谢。

4

1 回答 1

0

我不是专家,但您可以使用常规的预定义模型来做到这一点。

  • Item_Type
  • Item_Attribute
  • Item

Item_Type 将有一个名称变量(不是唯一的),可能还有您想要的任何其他常见属性。然后它将有一个has_many Item_Attributes关系,而Item_Attribute belongs_to Item_Type.

所以我会创建一个视图,允许用户添加新Item_Type的 s ,然后Item_Attribute为这些项目类型定义 s 。

然后您可以拥有实际Item模型,其中的每个实例都存在Item_Type于库存中。Item属于Item_Type, 和Item_Type has_many Items,Item不能有 null Item_Type

因此,用户创建了一个Item_Type名为“BIKE”的新名称,然后添加了几个Item_Attributes,例如“Mountain”和“Red”。然后用户可以创建一个Item与“BIKE”有关系的新的Item_Type

如果他们想添加一辆蓝色山地自行车而不是红色自行车,他们需要再次执行该过程,添加另一个Item_Type“BIKE”,除了添加“Blue”作为Item_Types的新实例的属性Item_Attribute

于 2014-11-30T08:51:55.797 回答