数据库设计 - 存储模板和实例的最佳方法

5

我们的数据库需要有模板,例如具有一定参会人员和基础会议名称的会议模板。然后可以“实例化”该会议,以便复制该会议并修改属性。我认为最好的做法是:

  1. 将“实例”存储在同一表中,并以类似的方式存储相关信息。
  2. 创建具有相同属性的不同表,在一个表中存储模板,而在另一个表中存储“实例”。
2个回答

6
我建议将模板储存在一个独立的表中,该表应该与实例表中的必要列相同。这样,当查找特定类型的数据时,您不需要在任何地方添加特殊逻辑来过滤掉其中一种(模板或实例)。将模板放在另一个表中将允许您在需要时添加更多模板元数据。

1

使用一张表,但在表中添加一个名为"isTemplate"的标志字段,用于标识记录是否为默认或模板记录。

创建一个具有默认参数的新记录,并将isTemplate设置为"1"、TRUE、YES或其他值。

当创建新会议时,只需将其作为模板的副本创建即可:

INSERT INTO meetings(place,people,time)
(SELECT place,people,time FROM meetings WHERE isTemplate = '1')

如果您有多个模板,则会得到可用模板的列表,如下所示:
SELECT * FROM meetings WHERE isTemplate = '1'

然后通过主键实例化其中一个模板,而不是使用“isTemplate”:

INSERT INTO meetings(place,people,time)
(SELECT place,people,time FROM meetings WHERE ID = 'xxxx')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接