我正在建立一个小网站,让用户将他们最喜欢的书籍推荐给海誓山盟。所以我有两张桌子,书和小组。用户可以在他们的图书馆中拥有0本或更多书籍,并且一本书属于1个或更多组。目前,我的表是这样的:处理这些MySQL数据库关系的最佳方法是什么?
books table
|---------|------------|---------------|
| book_id | book_title | book_owner_id |
|---------|------------|---------------|
| 22 | something | 12 |
|---------|------------|---------------|
| 23 | something2 | 12 |
|---------|------------|---------------|
groups table
|----------|------------|---------------|---------|
| group_id | group_name | book_owner_id | book_id |
|----------|------------|---------------|---------|
| 231 | random | 12 | 22 |
|----------|------------|---------------|---------|
| 231 | random | 12 | 23 |
|----------|------------|---------------|---------|
正如你所看到的,用户+书籍和书籍+群体之间的relationsships表中定义。我应该在他们自己的表中定义关系吗?事情是这样的:
books table
|---------|------------|
| book_id | book_title |
|---------|------------|
| 22 | something |
|---------|------------|
| 23 | something2 |
|---------|------------|
books_users_relationsship table
|---------|------------|---------|
| rel_id | user_id | book_id |
|---------|------------|---------|
| 1 | 12 | 22 |
|---------|------------|---------|
| 2 | 12 | 23 |
|---------|------------|---------|
groups table
|----------|------------|
| group_id | group_name |
|----------|------------|
| 231 | random |
|----------|------------|
groups_books_relationsship table
|----------|---------|
| group_id | book_id |
|----------|---------|
| 231 | 22 |
|----------|---------|
| 231 | 23 |
|----------|---------|
感谢您的时间。
谢谢你的提问。看,有人在某个地方正在创建一个非规范化的数据库......这让上帝哭了。至少现在你知道正确的方式,那将是世界上少一个悲剧。 – ErikE 2011-06-24 20:43:28