私のソフトウェアチームでは、インタビューの一環として、データベースの理解度をテストしています。
提示-非常に貧弱な設計(CRMタイプのアプリケーションを考えてください)で、約30分の思考時間の後、設計を改善するように依頼します。
次に、彼らが話していることに基づいて、さらに質問をします。
私たちは理解を探っています
- パフォーマンスV正規化
- 主要な設計とリファレンタル整合性
- 改善点-代替DB構造-トリガー、ビュー、手順
- デザインが弱い領域-多対多の関係を克服する方法
- これがサーバーに与える影響-メンテナンス
- データセキュリティの問題
- アプリケーションのセキュリティの問題
その後、チームとして、これらのタイプの質問に対するジュニア/シニア/アーキテクトタイプの回答と考えるものについて考えました。
そのため-パフォーマンスv規範化-
そもそも問題を見て、その理由を議論することができます(ジュニア)
4/5 NFを推奨しますが、パフォーマンスの問題を非正規化し、問題を明確にする方法を理解します(シニア)
彼らはスタースキーマなどの異なるタイプの設計を推奨し、多くのレベルでの影響を議論しますか(建築家)
参照整合性はデータの関係を強化するために必要であり、これについて議論することができますが、Key Choice and Design(Junior)の問題は表示されません
データボリュームとデータタイプに関する問題を議論しますvデータの自然キーを探して、なぜこれらを見るのか、そして参照整合性に伴う問題(上級)について話し合うことができます
キーと整合性に関連するさまざまな視点を議論し、迅速な設計のためにさまざまな実際のモデルを思い付くことができます(Architect)
写真が撮れます。
さらにコメントを追加したい場合は、コメントを投稿し、残りの部分について私たちが考えていることを詳しく説明しますが、最初の2つだけを含めて、私たちが考えたことに関するアイデアを提供します。
ポイントは、1。質問について考えることです。2.私たちは、チームとして、これらのタイプの質問に対するジュニア/シニア/アーキテクトタイプの回答と考えるものについて考えました。
私は候補者としてチームを強調し、チームは入ってくる人のスキルに自信を持たなければなりません。もし彼らが異なるレベルへの答えとして彼らが見ているものを考え出せば、入ってくる人はチームにより良く適合することを望みます。また、チームが候補者の選択に影響を与えることができます。また、質問パネルに参加する人を指名します。チームの賛同で大いに役立ちます。