考虑库存管理系统的情景。 Inventory有许多类型的项目,每个项目都有自己的表和列。一个,两个或十二个表不足以描述过多的物品类型,因为它们变化很大。例如BIKES等一系列项目的某些属性与CARS的属性不同。开发人员考虑成千上万的物品类型并将它们手动合并到每个模型中是很乏味的。
用户有自己生成模型的方法吗?从而生成自己的SQL表等...是否有另一种方法来解决这个问题? (也许使用语义Web技术)
来自Spring Framework,我对RoR开发还很陌生。
先谢谢。
答案 0 :(得分:0)
我不是专家,但您可以使用常规的预定义模型。
Item_Type
Item_Attribute
Item
Item_Type将具有名称变量(不唯一),也可能是您想要的任何其他常见属性。然后它会有has_many Item_Attributes
关系,而Item_Attribute
belongs_to Item_Type
。
因此,我创建了一个视图,允许用户添加新的Item_Type
,然后为这些项类型定义Item_Attribute
。
然后您可以拥有实际的Item
模型,其中每个实例都是清单中Item_Type
的存在。 Item
属于Item_Type
,Item_Type
has_many
Items
,Item
不能为Item_Type
。
因此,用户创建一个名为“BIKE”的新Item_Type
,然后向其中添加几个Item_Attribute
,例如“Mountain”和“Red”。然后,用户可以创建与“BIKE”Item
有关系的新Item_Type
。
如果他们想要添加蓝色山地车而不是红色山地车,他们需要再次完成此过程,添加另一个Item_Type
“BIKE”,除了添加“蓝色”作为新的属性Item_Type
的{{1}}的实例。