我在MySQL中开发了一个属性为
的通知表
1.Created_At DateTime使用当前时间戳
2.notification_type varchar(100)
3.IS_Read boolean
4.我根据通知类型显示的消息
5.Notification_ID auto_Increment作为主键
这些是我在通知表中输入的属性
现在我的问题是,这些属性是否足够?或者我应该添加更多???通知表中应该包含哪些属性?
被修改的
现在我的通知表属性看起来像
1.Created_At DateTime使用当前时间戳
2.notification_type varchar(100)
3.Status int(2)在这个I&#l; ll存储通知状态,它显示并以二进制格式读取或不读取[00,01,10,11] =二进制重复表示的左侧表示通知是否已经阅读,右侧是否隐藏。
4.我根据通知类型显示的消息
5.Notification_ID auto_Increment作为主键
6.User_ID作为表用户的外键。无论何时应用某些删除插入或更新,通知都会生成并通过此User_ID将其发送给相关用户
现在我的问题再次相同
这些属性是否足够?或者我应该添加更多???通知表中应该包含哪些属性?
答案 0 :(得分:2)
你的问题过于笼统,很难回答。 但我仍会尝试以更概念化的方式回答这些问题:
is_read
字段,您应该始终向表中添加主键,特别是对于此表,因为您要更新行。在这种情况下,您需要某种ID,您可以将其称为id
,此ID将代表通知ID,并且应该是自动增量。status
字段而不是is_read
来表示单个通知的几种状态。我希望这能解释它应该如何运作的基本概念,以及你应该从哪里开始 如果您有更具体或技术性的问题,我很乐意提供帮助。
祝你好运!
现在可以解释一下状态变量
的更多信息
状态表示为INT
,由您决定。例如,如果要隐藏通知面板中的通知,则应通过状态指示。让我们假设您有两种不同的状态类型,隐藏与否,以及是否读取。在这种情况下,以下面的二进制表示形式创建状态是如此经典:11,10,11,00。当二进制表示的左侧指示通知是否已被读取而右侧是否是“#”;隐藏的。
例如:
00
,表示通知已显示,未读取。01
,表示通知已隐藏,未读取。10
,表示已显示通知,并且已被阅读。11
,表示通知已隐藏,已被阅读。稍后您可以轻松地使用二元运算符检查每种情况,例如在JavaScript中:
var STATUS_READ = 2;
var STATUS_SHOW = 1;
function isRead(status)
{
return !!(status & STATUS_READ);
}
function isVisible(status)
{
return !!(status & STATUS_SHOW);
}
请详细说明您正在谈论的目标对象,它的工作原理以及何时使用以及原因。还告诉我目标对象数据类型
我们假设您的系统中有用户。每个用户都有自己的user_id
我们假设您要为每个用户显示通知,因此,您还应该在通知表中附加通知目标用户。
在这种情况下,您应该添加包含用户ID的列user_id
,通常它表示为INT
,但它也可以是username
VARCHAR
,这取决于你是如何设计用户表的。