Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
733 views
in Technique[技术] by (71.8m points)

database - Best way to store a many-to-many relationship in MySQL?

Let's say I have a simple database with tables 'posts' and 'tags'. Posts can have many tags and tags can belong to many posts.

What is the best way to structure the database? I thought of using a list/serialize:

tags
idx tag_id, str tag_name

posts
idx post_id, str title, list tag_ids

OR having another table with the associations. Problem is using this I don't even know how to structure the query to pull the associated tag names when I get a post.

posts
idx post_id, str title

post_tags
fk post_id, fk tag_id

I actually I don't like either of them. Is there a better way?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The post_tags is the proper means of implementing a many to many relationship in the database.

The only addition I'd make to what you posted is that both columns in it should be the primary key to ensure there are no duplicates.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...