我正在为我们公司设计一个通知系统,用户可以在其中指定是否要为不同的操作发送通知。
我想知道这个设计模式的名称是什么,所以我可以阅读它并遵循该做和不做的事情。
故事(要求):当用户在我们的网站(应用程序)上采取不同的行动时,这些行动会被发布到他们的 facebook 和 twitter 帐户,我们也会给他发电子邮件。有很多动作,在 Facebook 下有 6 个,在 Twitter 下有 6 个,在电子邮件下有 12 个。因此,为每个操作创建单独的列是没有意义的,特别是它们的值默认为 true。
因此,例如,当用户将新图像上传到我们网站上的页面时,我们希望将其发布到他们的 facebook 和 twitter,他们只需将图像上传到我们的应用程序。
我的设计是一个包含这些列的 meta_data 表(带有示例行):
id, user_id, namespace, notification, value
0, 1, 'facebook', 'image_upload', false
1, 1, 'twitter', 'video_post', false
2, 10, 'email', 'send_money', false
同样对于所有操作及其命名空间,我在创建表时默认将一些行添加到数据库中,其中我将所有值设置为 true。然后在用户设置页面中,他可以看到这些设置的复选框,默认情况下都是选中的。每次用户创建取消选中一个时,我都会为该用户、操作和命名空间创建一个新行,其值为 false。