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