1

我有一个需要满足以下条件的数据库:

  • 存放各种产品
  • 每个产品都属于一个特定的类别
  • 需要有大约。14种不同类别的产品
  • 每个产品类别的属性略有不同

非常像从头开始构建 PC。您需要机箱、硬盘、mb、cpu 等。它们都有不同的属性。

我对需要多少张桌子感到困惑。如果每个类别都有不同的属性,我是否需要为每个类别创建一个表格?我需要访问每个类别及其相关产品的 CRUD 功能。还是我有一个涵盖所有不同属性的通用产品表?拥有一个包含大量空列的新产品表单似乎有很多冗余。

任何帮助是极大的赞赏!!!!

4

2 回答 2

0

在设计架构时,您需要识别构成系统的实体。如果产品种类繁多以至于产品表中会有大量的 mull 值,我建议“产品”可能不是实体——如果是,它没有大小、has_gov 等属性等。对于您提供的两个示例,在我看来,即使两者都作为“产品”出售,它们也是离散的实体,您应该为它们提供单独的表格。作为一个速写,可能是这样的:

electric_motor
--------------
id
product_id (FK to product.id)
size
mfg_id

receiver
--------
id
product_id (FK to product.id)
num_channels
has_gov
has_volt_reg

product
-------
id
part_num
description
location
price

简而言之,一个类别的每个成员所独有的属性——那些真正将它定义为一个单独实体的属性——一起属于一个表,而所有类别成员作为“产品”共有的那些属性属于一个表。单独的表。

于 2012-05-15T15:46:35.487 回答
0

您可能想为自己画下来,这在开始时帮助了我很多!

网上商店最常见的架构是这样的product_categorie>product_type>product>product_variants

看看: http: //guides.rubyonrails.org/migrations.html

关于如何使用帮助器生成表和列,还可以尝试使用 rails for zombies,它将深入了解表关系并附带一些任务要完成。

在学习 RoR 时,这些东西是必须的

学习愉快!

于 2012-05-14T15:40:02.243 回答