私の質問は、mysql データベースを使用する php Web サイトに関するものです。
現在、データベースには「トークン」エンティティがあります
トークンは 0 個以上の「オブジェクト」エンティティを保持でき、これらの各オブジェクトは x、y、z 型にすることができます
それで
----------
| Token |
|--------|
--------------
|token_object|
| |
|tokenID |
|objectID |
--------------
------------
| object |
| |
|objectType|
------------
------------ --------- ---------
| objectX | |objectY| |objectZ|
| | | | | |
------------ --------- ---------
オブジェクトからデータを取得したい場合、キャッシュ システムの性質上、ほとんどの場合一度に 1 つのオブジェクトである場合、オブジェクトと objectX/Y/ からデータを取得するために 2 つのクエリを作成するだけでよいため、これで問題なく動作します。 Z
(SELECT * FROM object WHERE id = $id)
と
switch($objectType)
case 'objectX':
SELECT * from ObjectX WHERE id = $id
case 'objectY':
etc etc..
しかし今、私は Web サイトのユーザーが新しいオブジェクト タイプ、つまり objectA/B などを作成できるようにするよう求められました。
新しいオブジェクト タイプごとに新しい objectXn テーブルを作成し、objectType に適切な値を選択するだけで済みます。
(SELECT * FROM $objectType WHERE blabla)
しかし、それは非常にきれいな解決策ではないようです。特に新しいテーブルの作成です
より良い解決策はありますか?
注目に値するのは、トークンに関連する多くのオブジェクトがあり、追加のオブジェクト タイプの作成はあまり発生しないか、ほとんど発生しないことです。