在SQL数据库中存储注释标志的最佳方法?评论发布在页面(mediaId)上,每个评论都可以有孩子,评论可以由拥有该页面的人隐藏,也可以由主持人隐藏。任何人都可以标记评论,但只能标记一个类别。
一旦评论有X个标志,它就会受到主持人的注意。如果主持人发现没问题,他就不应该清除标志,而是做一些事情,这样就需要引起他的注意。
enum FlagComment { none, offensive, spam, other, };
command.CommandText =
"CREATE TABLE if not media_comment( " +
"id INTEGER PRIMARY KEY, " +
"mediaId INTEGER, " +
"parentId INTEGER, " +
"author INTEGER, " +
"date DATE, " +
"text TEXT, " +
"hidden INTEGER);";
command.ExecuteNonQuery();
command.CommandText =
"CREATE TABLE if not media_comment( " +
"commentId INTEGER, " +
"userId INTEGER, " +
"flagType INTEGER); ";
command.ExecuteNonQuery();
command.CommandText =
"CREATE TABLE if not media_comment_mod_clear( " +
"commentId INTEGER, " +
"modId INTEGER, " +
"action INTEGER, " + //action is delete or ignore
"flagAmount INTEGER); "; //amount of ppl who flagged before mod took action
command.ExecuteNonQuery();
答案 0 :(得分:1)
我不确定flagAmount是否正确。
最好有一个标志表,其中每一行都有一个标志ID,注释ID,标志类型等。然后,计算注释有多少个标记可以用SQL完成,但你也保持每个 - 标志信息(例如类型)。