Ano*_*us1 3 mysql database-design
我们的数据库需要有模板,例如,有一个会议模板,其中包含参加会议的特定人群以及基本会议名称。然后可以“实例化”会议,以便您可以制作该会议的副本并修改属性。我能想到的最好的方法是:
我会将模板存储在一个单独的表中,该表反映了实例表中的必要列。这样,在查找特定类型的数据时,您无需在任何地方放置特殊逻辑来过滤掉一种或另一种类型(模板或实例)。如果将来需要,将模板放在另一个表中将允许您向模板添加更多元数据。
如何使用一个表,但向表中添加一个诸如“isTemplate”之类的标志字段,该字段将用于将记录标识为默认记录或“模板”记录。
您创建一个具有默认参数的新记录,并将 isTemplate 设置为“1”或 TRUE 或 YES 或其他。
创建新会议时,只需创建模板的副本,如下所示:
INSERT INTO meetings(place,people,time)
(SELECT place,people,time FROM meetings WHERE isTemplate = '1')
Run Code Online (Sandbox Code Playgroud)
如果您有多个模板,那么您将获得可用模板的列表,如下所示:
SELECT * FROM meetings WHERE isTemplate = '1'
Run Code Online (Sandbox Code Playgroud)
然后通过主键而不是“isTemplate”实例化这些模板之一:
INSERT INTO meetings(place,people,time)
(SELECT place,people,time FROM meetings WHERE ID = 'xxxx')
Run Code Online (Sandbox Code Playgroud)