数据库架构:如何实现用户的反馈?

时间:2014-03-14 06:14:56

标签: sql database-design postgresql-9.1

我有表'用户'。用户可以拥有角色 - '客户'和'员工'。客户可以给员工反馈(评级)。我不确定如何正确实现它,因为客户和员工是架构(用户)中的一个实体。

我想到了这样的事情:

a img

因此,如果用户具有角色'客户端'然后他会通过“给予反馈”反馈,如果是“员工”,那么通过' received_feedback'?这样做是否合适?

这个问题很相似:Database Design - Linking two users但在我的情况下,知道谁给出了反馈以及谁收到了反馈是很重要的。

1 个答案:

答案 0 :(得分:1)

我会做这样的事情:

用户

id
first_name 
last_name 
email 
role_id
etc..

feedback_users

id
user_id
given_feedback - a value that tells if it's given (1) or recieved feedback (0))
feedback_text

角色

id
name

(客户和员工两行)

上表之间的关系:

users.id - feedback_users.id (1 to many)
users.role_id - roles.id (many to 1) //given that a user can only have one role