2009-06-02 2 views
1

SQL 데이터베이스에 주석 플래그를 저장하는 가장 좋은 방법은 무엇입니까? 댓글은 페이지 (mediaId)에 게시되며, 각 댓글에는 어린이가있을 수 있으며, 댓글을 페이지 소유자 또는 운영자가 숨길 수 있습니다. 누구나 댓글을 달 수 있지만 카테고리는 한 번만 표시 할 수 있습니다.SQL 데이터베이스에 주석 플래그를 저장하는 가장 좋은 방법은 무엇입니까?

댓글에 X 개의 플래그가 있으면 평가자의주의를 환기시킵니다. 중재자가 잘 찾으면 깃발을 지울 수 없어야하지만 무엇인가해야하므로 그의 눈길을 끌기 위해 금액 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

사용중인 C#입니까? –

답변

1

나는 flagAmount가 올바른 방법임을 확신하지 않습니다.

모든 행에 플래그 ID, 주석 ID, 플래그 유형 등이있는 플래그 테이블을 사용하는 것이 더 나을 것입니다. 그런 다음, 주석으로 몇 개의 플래그가 있는지 계산하는 것은 SQL로 수행 할 수 있지만 플래그 별 정보 (예 : 유형).

+0

맞습니다. 동일한 사람이 여러 플래그를 방지하는 플래그를 넣은 사람의 user_id를 저장해야합니다. –

관련 문제