设置SQL数据库架构

时间:2012-05-14 15:19:13

标签: ruby-on-rails database-design sqlite

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

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

非常像从头开始构建PC。你需要一个case,hdd,mb,cpu等。它们都有不同的属性。

我很困惑我需要多少桌子。如果每个类别具有不同的属性,我是否需要每个类别的表格?我需要访问每个类别及其相关产品的CRUD功能。或者我是否有涵盖所有不同属性的通用产品表?使用大量空列的新产品形式似乎有很多冗余。

非常感谢任何帮助!!!!

2 个答案:

答案 0 :(得分:0)

你可能想为自己画下来,这对我来说很有帮助!

网上商店最常见的架构类似于product_categorie>product_type>product>product_variants

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

关于如何使用帮助程序生成表和列,还尝试使用rails for zombies,它将深入讨论表关系,并附带一些任务来完成。

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

玩得开心!

答案 1 :(得分:0)

在设计架构时,您需要识别构成系统的实体。如果产品变化多,那么产品表中会有大量的mull值,我会建议“product”可能不是实体 - 如果是,它没有像size,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

简而言之,类别中每个成员唯一的属性 - 真正将其定义为单独实体的属性 - 属于一个表,以及所有类别成员共同作为“产品”的属性属于另一张桌子。