我正在做一个问答网站。我需要设计一些投诉主持人流程表。在这个过程中,任何用户都可以投诉问题,当特定类型的问题投诉数量达到一定数量时,版主将接受投诉。
详细地:
用户提出问题。然后,另一个用户阅读了这个问题,想要标记一种投诉。
当此用户用任何类型的投诉标记问题时,它将被保存。标志具有类型属性(ComplaintA、ComplaintB、ModeratorAttention、..)。
版主可以看到任何问题的标志。如果某个问题的 ComplaintA 类型标志的数量达到一定数量(常数,如 10),版主将接受这些标志。
然后,这些相同类型的标志将与一条消息一起保存,该消息将在标志者的问题下看到(ProcessType is ComplaintsAccepted)。
然后,当提出问题的用户可以在修复他的问题后向版主发送带有消息的标志。如果更正满意(ProcessType为ResolutionAccepted),版主可以接受投诉的解决方案。
我的草稿设计细节:
Users (Table of Sql Membership Provider)
-----
- UserId
- Password
- Email
-...
Questions
---------
- QuestionId
- ...
Flags
----------
- FlagId
- QuestionId
- FlaggerId --> Flagger is a user
- FlagType --> ComplaintA, ComplaintB, ModeratorAttention
- FlagMessage
ModeratorProcesses
------------------
- ProcessId
- ProcessMessage
- QuestionId
- FlagType
- ProcessType --> ComplaintAccepted / ResolutionAccepted / DeleteAccepted
- ModeratorId --> Moderator is a user
- DateOfProcess
表关系: ModeratorProcesses - 1:m - 标志 - n:1 - 问题
对于这个过程来说,这是一个好的数据库设计吗?