具有不同类型参数的消息模板的数据库设计?

时间:2013-07-07 16:15:03

标签: mysql sql database database-design

提前感谢以下系统的db设计的任何想法。

我需要根据一些消息模板和参数列表自动生成一些消息,例如:您好{0},{3}中是否有以下{1},{2}?

{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

1 个答案:

答案 0 :(得分:0)

总的来说,它看起来像是一个合理的设计,但我认为您还需要从源数据表中识别列和行。通过Message_Details进行映射将需要specificColumnName。然后你可以select specificColumnName from specificTableName但你仍然需要一种方法来选择你需要的行,但这可能需要来自"环境"在你使用模板的时候?在您的示例中,您将使用该模板来确定{0}来自specificColumnName" userName"来自specificTableName"用户"并且知道这是specificTypeID 1 = string(假设' s是什么类型),但是哪个用户?