mysql - 在线商店的数据库

标签 mysql ruby-on-rails database relational-database database-schema

我打算创建一个在线电子商务 网站,用于销售一些鞋类、服装等产品。但我无法弄清楚如何为此设置模式(表和所有)。我正在用 Ruby on RailsMysql 来做这件事,我是 ROR 的新手。

详情如下:-

我在产品中有不同的类别,例如鞋类、服装、配饰、包等,分别针对男士和女士.

买家选择产品并将其添加到购物车,然后继续结帐。我们只有一个货到付款类型的支付系统。我们不会创建任何用户帐户。没有用户帐户

我应该如何在 Rails 中使用所有 Controller 和模型实现这一点?
我应该为每个类别制作单独的表格吗?
我应该如何在男士和女士中对所需的产品进行分类?
以 Rails 方式提供完整的模式和关系表。

最佳答案

您需要Categories 表和Products 表。在产品表中,您需要 category_id:integer 字段。

Category.rb

has_many :products

Product.rb

belongs_to :category
has_many :line_items

购物车.rb

has_many :line_items

LineItem.rb(包含 product_id:integercart_id:integer 的表 line_items)

  belongs_to :cart
  belongs_to :product

每次有人将 product 添加到 cart 时,它会创建一个 line_item 行,其中包含 product_idcart_id 并且您还可以添加数量字段以在客户订购更多相同类型的产品时进行更新。

对于MenWomen 类型的产品,您可以在产品表中添加一个字段来标识该产品是给他还是给她,for_men: bool 值,默认值:true

Product.rb

belongs_to :category
has_many :line_items

scope :men, -> {where(for_men: true)}
scope :women, -> {where(for_men: false)}

什么时候打电话

 products = Product.all
 products.women

它只会向您显示标记为女性类型的产品,其中 for_men 字段为 false

如果您按类别提取产品:

category = Category.find 1

category.products.women 

将向您展示适合该类别女性产品

关于mysql - 在线商店的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17874502/

相关文章:

php - 如何从以下连接 php/MySQLi 查找最后插入的 id、事务、提交、回滚

ruby-on-rails - 带参数回调后的 aasm

sql - 查找 VB.net 应用程序中使用的表以删除未使用的表

mysql - 添加正确的 MySQL 触发器

mysql - 返回特定 ID 的最大值的日期

mysql - SQL 查询删除字符串结尾值相同的两行

mysql - 需要帮助.... 选择不在日期之间的位置

jquery - 如何避免 bootstrap 的 select2() 插件中出现重复条目

mysql - 将 Heroku 应用程序与 Amazon RDS 实例连接时出现问题

mysql - Mysql搜索查询优化