存储状态标志的最佳方法

时间:2014-01-09 09:36:11

标签: php mysql database-design flags enum-flags

寻找为以下场景存储标记的最佳方法。

我的应用程序必须在特定时间间隔内向用户发送一定数量的通知或提醒。我打算编写批处理作业来执行此操作。为了避免重新发送提醒,我想要一些标志。

示例案例:在用户登录到应用程序的第2天,第5天和第10天发送提醒。

将来可能会增加或减少提醒的数量。我想知道存储标志的最佳方法是什么 - 最好将它存储为INT并使用二进制等效项用于内部表示或每个间隔使用一列(如第二天一个TINYINT(1),一个为5,依此类推......)

存储空间不是限制因素,我只是在寻找整个行业的最佳实践。

2 个答案:

答案 0 :(得分:0)

为了获得最大的灵活性,我建议您使用自己建议的解决方案。

  

[...]将其存储为INT并具有用于内部表示的二进制等价物或每个间隔使用一列(如第二天一个TINYINT(1),第五天一个,依此类推......)< / p>

您需要问自己的唯一问题是哪个单位(小时/天/周)最合适,以及是否可以发送更频繁的通知(例如每0.5天)。

答案 1 :(得分:0)

一般来说,通过使用多个列而不是组合列,可以为自己节省很多未来的麻烦。

但请注意,您要向用户发送多个提醒,因此您的数据中存在1:n关系。这需要一个新表,特别是因为您已经预计将来会更改提醒的数量。

因此,您应该添加一个新表,其中包含有关发送提醒的信息(userID,date_of_sending,type_of_reminder)。