会員管理用のデータベースを作成しています。要素 (ユーザー) があり、これらのユーザーにはプロパティ (姓、名、生年月日など) があります。今、名前はテキストですが、生年月日は日付なので、これをデータ型「日付」の列に格納したいと思います。ユーザーのプロパティは異なる場合があるため、要素を含むテーブル、プロパティを含むテーブル、および 2 つをリンクするテーブルが必要です。ただし、さまざまな種類のデータ型を使用できるようにするには、データ型ごとに異なるテーブルを作成する必要があります。次のようなものが得られます。
Table: Users
------------
user
1
2
table: properties
---------------------------------
property propertyName datatype
1 surname text
2 lastname text
3 date of birth date
Table: PropertiesString
---------------------------
property value
1 John
2 Tim
3 Smith
4 Jones
Table: PropertiesDate
-------------------------
property value
1 04-11-1966
2 07-08-1971
table: userPropertiesLinked
-----------------------------
user property propertyValue
1 1 1
1 2 3
2 1 2
2 2 4
2 3 1
1 3 2
これをまとめると、John Smith (04-11-1966) と Tim Jones (07-08-1971) の 2 人のユーザーがいることがわかります。
私の質問は、これが最善の方法ですか? この DB のセットアップ方法は非常に検索しやすく、人々は複数のプロパティを持つことができ、プロパティは 2 回保存されないなどです。私が直面している問題は、1 つのテーブルの「プロパティ」1 がジョンであり、その他 1966 年 4 月 11 日。これらの値が異なるテーブルにある場合でも、これらの値を一意にして自動インクリメントする方法はありますか? 二重の情報や空のセルを危険にさらすことなく、それらを 1 つのテーブルに配置する方法はありますか?
どんな助けでも大歓迎です!