如果有人被要求「爲這樣那樣的設計一個系統」或「你會用什麼樣的數據結構?」......可以用關係數據庫系統回答嗎?設計?完成表,實體,它們之間的關係,外鍵和主鍵等等?對於使用數據庫系統有很多經驗的人來說,這樣做沒問題,但是沒有使用數據結構的項目經驗?我只知道鏈接列表,二叉樹,二叉搜索樹,堆棧和隊列......對即將到來的實習生面試感到緊張。有什麼建議?數據結構和系統設計問題
回答
鏈接列表,樹和堆棧是用於處理程序中數據的工具。數據庫表格和表格設計和關係是用於存儲數據的工具。這個「系統」使用這兩個但是爲了不同的目的,但他們確實工作。
「爲這樣和那樣的設計一個系統」 這是一個更高層次的問題,所以我首先從數據庫表開始談談,然後根據他們之後的詳細程度,進入程序細節。
「你會使用什麼樣的數據結構來處理這樣的問題?」 這聽起來像是關於算法設計的一個問題,所以這裏是你可能被問及樹和堆棧的地方。
希望有所幫助:對
在採訪中,(與算法的複雜性和經常),旨在測試與數據結構的熟悉的問題是不是關係數據庫。有關係統設計的問題可能涉及數據庫設計部分。
你提到的數據結構都很重要。最明顯缺失和非常重要的一個是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. 使用STL設計實時交易系統的數據結構
- 9. 數據傳輸體系結構設計
- 10. 分析系統 - 數據庫設計或架構存儲統計
- 11. 數據系統設計
- 12. 數據庫體系結構問題
- 13. 數據庫設計問題(圖書交易系統)
- 14. 消息系統。關於數據庫設計的問題
- 15. 設計問題:預訂系統
- 16. 一個系統設計問題
- 17. 的通知系統設計問題
- 18. 系統設計面試問題
- 19. 標記系統設計問題
- 20. 關於數據庫連接體系結構的設計難題
- 21. 關係數據庫設計問題
- 22. 分佈式分析系統上數據一致性的體系結構設計
- 23. 金融交易系統數據庫體系結構設計原則?
- 24. 計費系統的設計數據庫
- 25. 計算機I/O-計算機系統和體系結構
- 26. 設計問題/應用結構和問題分離
- 27. DAO設計和數據結構
- 28. 數據結構設計和存儲
- 29. 設計數據結構
- 30. 設計數據庫結構
你的回答很好。一個悖論:數據庫表格和表格設計和關係用於存儲和共享數據。如果只是單個應用程序的存儲和檢索,那麼關係設計的大部分浪費都是浪費的。 – 2011-02-07 11:02:22