2

これは私にとって新しいトピックです。いくつかの記事を読みましたが、次の質問がこの投稿のタイトルに関連しているかどうかさえわからないところまで、まだ不明です。

私のシステムはユーザーにデータを送信します。ユーザーは、次の方法でデータを送信することを選択できます。

  • XML
  • Eメール
  • 役職

ユーザーの選択に応じて、いくつかの追加の異なる変数が必要になります。たとえば、電子メールでデータを送信するには電子メール アドレスが必要ですが、XML で送信するには必要ありません。

「データ配信の選択肢」(XML、電子メール、または投稿) を格納するデータベース テーブルがあると仮定すると、追加で必要な変数をこのテーブルに格納するのが最善でしょう。つまり、XML が選択された場合、電子メール フィールドはその行で空になります。 、または 3 つの新しいテーブルを作成して、可能な各選択肢に関連付けられた vairables を「Data Delivery Choices」テーブルに格納し、「Data Delivery Choices」PK を介してこれらのテーブルのエントリを関連付ける方がよいでしょうか?

それとも、それがどのように行われたかは問題ではありませんか?

質問のために、私がすでにユーザーのメールアドレスなどを他の場所で保持している可能性があるという事実を忘れてください。

ありがとう!

4

1 に答える 1

1

Some RDBMS (PostgreSQL for example), allow for table inheritance. So you can define DataDeliveryChoices and then create 3 additional tables that inherit from it DataDeliveryXML, DataDeliveryEmail, ...

MSSQL allows you to store (and query) an XML document in a column, so you can store the additional data in XML (not classic database design, but very flexible should you need to add some data fields, without changing the schema).

Your way of adding three additional tables is IMO also an acceptable solution.

The possibilities are endless :)

于 2012-09-18T14:13:33.083 に答える