作業中のアプリケーションのデータ構造のレイアウトに取り組んでいます。処理する必要があるものの1つは、顧客/連絡先情報を保存することです。私は、名簿、Gmailの連絡先など、いくつかの異なる連絡先情報プログラムのインターフェースを研究してきました。
私は基本的に連絡先を「エンティティ」(個人、会社、役割など)に要約しました。
- 各エンティティは、複数の住所、電話、電子メールのエントリを持つことができます。
- これらのそれぞれが「関係」を定義します(自宅/職場/アシスタントなど)
- エンティティ{1}-{関係}->{0..*}データ
- エンティティには、他の「一般的な」データ(誕生日、AIMアカウントなど)の自由形式のデータストレージである
複数のフィールドを含めることができます。
- エンティティ{1}-{fieldName}->{0..*}フィールドデータ
- エンティティは、たとえば従業員、配偶者として別のエンティティにリンクできます
- エンティティ{0.. }<-{relationship}->{0.. }エンティティ
同様の連絡先データベースのSQL実装を行った人はいますか?ここで自分でプロジェクトに取り組んでいる誰かと共有することを避けるための洞察/提案/落とし穴はありますか?私が説明したことは合理的または過度に複雑に見えますか?
1つの質問ですが、同じ会社で働く4人の人がいるとします。それらはすべて同じ「勤務先」の電話番号を持っています(おそらく異なる内線番号が付いています)-「勤務先」の番号または住所が変更された場合、連絡先をかなり簡単に更新できるようにしたいと思います。これの多くは、データベースの使用方法に帰着します。これは、従業員をそれぞれの会社のエンティティにリンクすることになると思いますが、住所/電話番号は従業員に直接接続されなくなりました。エンティティとデータの関係を多対多にして、同じ住所/電話番号を複数の人に添付できるようにすることについて議論しています。1つの場所で更新すると、すべての場所で更新できます。私はこれを考えすぎているのでしょうか?髪を抜く