如果有人被要求“为这样那样的设计一个系统”或“你会用什么样的数据结构?”......可以用关系数据库系统回答吗?设计?完成表,实体,它们之间的关系,外键和主键等等?对于使用数据库系统有很多经验的人来说,这样做没问题,但是没有使用数据结构的项目经验?我只知道链接列表,二叉树,二叉搜索树,堆栈和队列......对即将到来的实习生面试感到紧张。有什么建议?数据结构和系统设计问题
回答
链接列表,树和堆栈是用于处理程序中数据的工具。数据库表格和表格设计和关系是用于存储数据的工具。这个“系统”使用这两个但是为了不同的目的,但他们确实工作。
“为这样和那样的设计一个系统” 这是一个更高层次的问题,所以我首先从数据库表开始谈谈,然后根据他们之后的详细程度,进入程序细节。
“你会使用什么样的数据结构来处理这样的问题?” 这听起来像是关于算法设计的一个问题,所以这里是你可能被问及树和堆栈的地方。
希望有所帮助:对
在采访中,(与算法的复杂性和经常),旨在测试与数据结构的熟悉的问题是不是关系数据库。有关系统设计的问题可能涉及数据库设计部分。
你提到的数据结构都很重要。最明显缺失和非常重要的一个是hash tables(或无序映射,以及许多脚本语言中的数据结构的基础,如python中的字典和javascript中的对象/映射)。您还应该阅读btrees,它们通常用于实现关系数据库(并且具有二叉搜索树等属性,但更适合于磁盘存储)。
在实习生面试中,这并不好。
我希望你熟悉基本的数据结构,但我不希望你是任何人的专家。 (不管我怎么称呼专家,)我会更关心你如何回答明显超出你目前知识的问题。如果我问你一辆van Emde Boas树的理论优势,“我不知道”可能是正确的答案。 (比欺骗我更好)
但是,作为一个实际问题,您可以将关系设计原理有益地应用于许多显然没有关系的问题。大多数Lotus Notes应用程序都将受益于坚实的关系设计。即使你不能在Notes中声明性地实现约束,你仍然必须以某种方式对它们进行解释 - 例外报告,期间文档爬行,不管怎样。
而且,IIRC,的第一个扩展示例大规模C++设计与C++或OO设计问题一样是一个关系设计问题。 (这件事发表在1996年。我是否那么老?是的,我想我是。)
- 1. 问题上的数据结构设计
- 2. 对象体系结构设计问题
- 3. KooBoo&Servicestack体系结构/设计问题
- 4. 统计和成就系统的数据结构
- 5. 会计系统设计和数据库
- 6. 设计系统组织结构表示
- 7. 设计L系统的数据结构(C++)
- 8. 数据传输体系结构设计
- 9. 数据系统设计
- 10. 数据库体系结构问题
- 11. 消息系统。关于数据库设计的问题
- 12. 数据库设计问题(图书交易系统)
- 13. 一个系统设计问题
- 14. 的通知系统设计问题
- 15. 系统设计面试问题
- 16. 金融交易系统数据库体系结构设计原则?
- 17. DAO设计和数据结构
- 18. 表数据结构设计
- 19. 数据结构设计
- 20. 设计数据结构
- 21. Python数据结构设计
- 22. 数据库结构/设计
- 23. 设计数据库结构
- 24. 设计问题/应用结构和问题分离
- 25. GNU构建系统问题
- 26. 优化/设计表结构和关系
- 27. Azure体系结构设计
- 28. SOA设计体系结构
- 29. 文件系统的数据结构
- 30. 跟踪系统数据库结构
你的回答很好。一个悖论:数据库表格和表格设计和关系用于存储和共享数据。如果只是单个应用程序的存储和检索,那么关系设计的大部分浪费都是浪费的。 – 2011-02-07 11:02:22