系统设计:Craigslist与速率限制服务
1. Craigslist设计要点
Craigslist的设计涉及多个方面,以下是一些关键要点:
- 物品分类与标签 :可以提供物品分类或标签,如“汽车”“房地产”“家具”等,允许发布者在列表中最多放置一定数量(如三个)的标签。可以创建一个SQL维度表来存储标签,Post表可以有一个用逗号分隔的标签列表列。也可以使用关联表“post_tag”来维护帖子和标签的关系,避免数据重复。
post
id (PK)
other columns...
tag
id (PK)
other columns...
post_tag
post_id (FK)
tag_id (FK)
还可以将标签列表扩展为层次结构,让用户能应用更精确的过滤器来查看更符合其兴趣的帖子。例如,“房地产”可能有以下嵌套子类别:
- 房地产 > 交易类型 > 租赁
- 房地产 > 交易类型 > 销售
- 房屋类型 > 公寓
- 房屋类型 > 独栋住宅
- 房屋类型 > 联排别墅
-
分析与推荐 :可以创建每日批量ETL作业,查询SQL数据库并为各种指标填充仪表盘,包括:
- 按标签分类的物品数量。
- 获得最多点击的标签。
- 让查看者联系发布者数量最多的标签。
- 销售
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



