以下は私のシステムのテーブル構造です。シナリオは、システムにクライアントがあります。クライアントには、たとえば、個人、会社、銀行など、さまざまなタイプがあります。私は次のようなデータベース設計を用意しています。
表:クライアント
===============================
| ID | NAME_CODE | TYPE |
-------------------------------
| 1000 | Martin | PERSON |
| 1002 | George | PERSON |
| 1003 | Max_Group | COMPANY |
-------------------------------
表:人
==================================================
| ID | CLIENT_ID | FIRST_NAME | LAST_NAME |
--------------------------------------------------
| 1 | 1001 | Martin | XXXXXXXXXXX |
| 2 | 1002 | George | XXXXXXXXXXX |
--------------------------------------------------
表:会社
===================================================
| ID | CLIENT_ID | NAME | Location |
---------------------------------------------------
| 1 | 1003 | Max Group Inc. | XXXXXXXXXXX |
---------------------------------------------------
編集:PERSONテーブルとCOMPANYテーブルにIDが追加されました。
誰かが私にもっと良い構造を提案してくれるなら、私は歓迎します。
上記の構造では、クラスモデルを作成する必要があります。以下は私が作成したものです。
class Client
{
int ID;
string NameCode;
}
class Person : Client
{
int ID;
int ClientId;
string FirstName;
stirng LastName;
//........
}
class Company : Client
{
int ID;
int ClientId;
string Name;
string Location;
//.........
}
上記のモデルは適さないと思います。これには正しい方法があります。より良い方法を教えてください。