データフィールド
私はデータベーステーブル構造を設計しています。異なる企業の従業員プロファイルを記録する必要があるとします。私たちは、次のフィールドがあります複合主キー:別の属性を使用して1つの属性を見つける
+---------+--------------+-----+--------+-----+
| Company | EmployeeName | Age | Gender | Tel |
+---------+--------------+-----+--------+-----+
それは別の会社から二人の従業員が同じ名前を持っている(とNO 2従業員が同じ会社で同じ名前を持っていないと仮定)ことが可能です。この場合、複合主キー(Company, EmployeeName)
は私の意見では必要であろう。
検索
は今、私は主キーのみで2つのいずれかの属性を使用して、すべての情報を取得する必要があります。
SELECT EmployeeName, Age, Gender, Tel FROM table WHERE Company = 'Company A'
そして、私はまた、別の会社からのすべての従業員は、ドナルドの名前を検索することができます:ために
SELECT Company, Age, Gender, Tel FROM table WHERE EmployeeName = 'Donald'
戦略
を例えば、 は、私はA社のすべての従業員のプロフィールを検索したいですこの要件を実装するには、すべてのデータを1つのテーブルに格納するという戦略があります。これは読みやすく理解しやすいものです。しかし、クエリがすべての行を反復処理する必要があるため、検索に時間がかかることがあります。私はできるだけ早くこれらの情報を検索したいと思います。これにはよりよい戦略がありますか?データベースに応じて、アイデンティティ/自動インクリメント/シリアル -