系统设计问题:
为您提供了数百万辆二手车的数据集以及有关它们的信息-里程,颜色,价格等。您必须在两天内创建一个API端点,以便用户查询数据集。
这是我给的答案:
使用关系数据库(例如PostgreSQL)来容纳数据。公开一个GET端点,该端点采用与数据集中的属性相对应的查询字符串参数,对其进行解析并使用它们来查询数据库。端点还可以跟踪查询最多的属性,并向这些属性添加索引以加快查询速度。我被问到如何处理一个范围(例如“车距为50,000 <=英里<= 100,000”的汽车),我说可以通过查询字符串参数来处理该范围,并通过GET端点将其转换为SQL查询。
Feedback
后来在反馈中被告知,这个答案“并未传达出对如何设计Web系统的深刻理解。”我希望就我的解决方案可能不足/不足或可能忽略了有关设计Web系统的某些方面提供一些见解。
[注:我从记忆中重建了答案,因此在这里可能比在采访中更清楚。
感谢您的帮助!
就像评论中已经讨论的一样,采访者想听听有关SQL注入的知识。您可以采取一些对策来避免SQL注入。这些是(很可能不是完整的列表,但是应该提示您要寻找的内容):