为Rails 3项目创建非常通用的数据模型是否有好处?

时间:2010-10-15 15:31:00

标签: ruby-on-rails database-design data-structures oop ruby-on-rails-3

产品可以有很多关于它的事情,我称之为属性。它可以有一个简短的描述。但该描述可以使用多种语言。同样,它可以有多个价格,其中一些特定于客户。鉴于以下数据:

Product:
  identifier: 123-ABC

   Price:
     value: $1.25
     currency: USD
     customer: Wal-Mart

   Price:
     value: $1.96
     currency: USD

   Description:
     short: "A Widget"
     language: EN

   Description:
     marketing: "Made from Space Age Polymers."
     language: EN

在这里使用STI是否有意义,并制作一组通用模型:

Product has_many Properties
Property has_many Attributes

Price < Property
Description < Property
Package < Property

这种方式在数据模型中是否过于宽泛?我应该坚持使用常规模型及其相关表格吗?

1 个答案:

答案 0 :(得分:3)

没有

严重

没有

至少不在SQL数据库中。

如果您想使用Cassandra或NoSQL数据库,那就是所有内容的存储方式。

Read my answer hereRead this

考虑具有名字,姓氏和出生日期的SQL表

查找所有早于30的LNAME = Page。

在一张表中

SELECT FNAME,LNAME,(SYSDATE - BDATE)/ 365年龄 来自人民 WHERE LNAME ='Page'和BDate&lt; SYSDATE - 30 * 365

现在在EAV中尝试

发表你的答案。