【发布时间】:2018-05-17 00:42:53
【问题描述】:
我是 ROR 的新手。
我正在构建一个分类广告应用程序,我的数据库中有以下表格:
(为简单起见,删除了一些字段)
表格用户
此表存储所有用户。
user_id
名称
电子邮件
密码
桌面广告
此表存储所有广告。
ad_id
users_user_id (FK)
标题
描述
cat_id (FK)
created_at
样本数据:
------------------------------------------------------------------------------
| ad_id | users_user_id | title | desc | cat_id | created_at |
------------------------------------------------------------------------------
| 1 | 1 | iphone 4 | brand new | 2 | 30-11-2015 |
------------------------------------------------------------------------------
表格类别
此表存储所有可用的类别。 ads 表中的 cat_id 与该表中的 cat_id 相关。
cat_id
类别
parent_cid
样本数据:
-------------------------------------------
|cat_id| category | parent_cid |
-------------------------------------------
|1 | Electronics | NULL |
|2 | Mobile Phone | 1 |
|3 | Apartments | NULL |
|4 | Apartments - Sale | 3 |
-------------------------------------------
表格 ads_attribute
此表包含特定类别的所有可用属性。与类别表相关。
attr_id
cat_id (FK)
attr_label
attr_name
样本数据:
-----------------------------------------------------------
|attr_id | cat_id | attr_label | attr_name |
-----------------------------------------------------------
|1 | 2 | Operating System | Operating_System |
|2 | 2 | Is Touch Screen | Touch_Screen |
|3 | 2 | Manufacturer | Manufacturer |
|4 | 3 | Bedrooms | Bedrooms |
|5 | 3 | Total Area | Area |
|6 | 3 | Posted By | Posted_By |
-----------------------------------------------------------
表格 ads_attr_value
此表存储ads表中每个广告的属性值。
attr_val_id
attr_id (FK)
ad_id
attr_val
样本数据:
---------------------------------------------
|attr_val_id | attr_id | ad_id | attr_val |
---------------------------------------------
|1 | 1 | 1 | Ios 8 |
|2 | 2 | 1 | 1 |
|3 | 3 | 1 | Apple |
---------------------------------------------
在将数据存储在 ads_attr_value 表中之前验证数据的最佳方法(rails 方法)是什么,因为这些值将位于选择字段中并且用户可以轻松更改它们,例如从 Ios 8 到“废话”。
我曾考虑将每个属性的所有可能值存储在一个新表中,然后检查用户发送的值是否存在于该表中,然后再将其存储在 ads_attr_value 中。你怎么看?我相信有更好的方法。
感谢分享。
【问题讨论】:
标签: ruby-on-rails