系统设计问题:
你有一个包含几百万辆二手车信息的数据集 -- 里程、颜色、价格等。你需要在两天内创建一个API端点,允许用户查询该数据集。
这是我给出的答案:
使用关系型数据库(比如PostgreSQL)存储数据。提供一个GET端点,它接收与数据集中属性相对应的查询字符串参数,解析并用于查询数据库。此端点还可以跟踪哪些属性被查询最多,并为这些属性添加索引以加速查询。当我被问及如何处理范围时 (例如,“里程数介于50,000到100,000之间的汽车”), 我说可以通过查询字符串参数处理,并由GET端点将其转换为SQL查询。
反馈
我在后来的反馈中被告知,这个答案“没有传达出对Web系统设计的深入理解。” 我希望能够得到一些有关我的解决方案可能不足/弱或可能忽略了Web系统设计的某些方面的见解。
注意:我依据记忆重构了我的答案,所以这里的表述可能比面试时更清晰。
感谢您的任何帮助!