0

次のシステムのデータベース設計のアイデアを事前に感謝します。

いくつかのメッセージ テンプレートとパラメーターのリストに基づいていくつかのメッセージを自動的に生成する必要があります。

{0}、{1}、{2}、{3} はすべて別のテーブルにある異なるデータ型です。{0} はユーザー テーブルの名前、{1} {2} はアイテム テーブルの名前、{3} は他のテーブルの名前の可能性があります。

すべてのメッセージ フォーマットと完全なメッセージを格納する必要がありますが、これは簡単ではないようです。以下の表を考えています。より良いアイデアはありますか?ありがとう!

Message_Format
===================================================================================
msgFormatID   int
bodyFormat    varchar  e.g. "Do you have any of the following, {0}, {1}, {2} in {3}?"


Message_Details
======================
msgFormatID        int  
dataIndex          int
specificTableName  varchar => the table name of specific table corresponds to {0},{1}... e.g. User_Table
specificTypeName   varchar => the column name of specific field, e.g. firstName in User_Table
specificTypeID     int     => the id used to query the table, e.g. userID
4

1 に答える 1

0

全体として妥当な設計のように見えますが、ソース データ テーブルから列と行を識別する必要もあると思います。Message_Details によるマッピングには、特定のColumnName が必要です。次にselect specificColumnName from specificTableName、必要な行を選択する方法が必要ですが、それはおそらくテンプレートを使用しているときに「環境」から取得する必要がありますか? あなたの例では、テンプレートを使用して、{0} が specificColumnName "userName" from specificTableName "users" から来ていることを判断し、それが specificTypeID 1=string (それが何のタイプであるかを仮定して) であることを知っていますが、どのユーザーですか?

于 2013-07-07T18:12:05.727 に答える