开发者

Is there a way to combine these 3 tables? (mysql)

开发者 https://www.devze.com 2022-12-29 05:14 出处:网络
I\'m creating a \"flagged\" func that flags users, postings, and comments. I am currently using three tables: \"flagged_users\" \"flagged_postings\" and \"flagged_comments\".

I'm creating a "flagged" func that flags users, postings, and comments.

I am currently using three tables: "flagged_users" "flagged_postings" and "flagged_comments".

And in each table, t开发者_运维知识库here's: flagged_id, user_id/posting_id/comment_id, reason.

Is there a way to combine into just one table? or is 3 tables the best?


well you could make one table with the following columns: flagged_id,type,id,reason where type = 1 for flagged_user, 2 for flagged_postings, 3 for flagged_comments. And id would refer to the id of the user or posting or comment. But then while querying in this table it you'd have to make an extra check on the type column.


If you want foreign keys you could create a Flags table like so and change the column you're inserting into based on the type:

FlagID - auto inc
UserID - default NULL
PostingID - default NULL
CommentID - default NULL
Reason - text

Or if you don't care about FKs in the database just use one column for the reference ID:

FlagID - auto inc
ObjectID - User/Post/Comment ID
Reason - text
0

精彩评论

暂无评论...
验证码 换一张
取 消