gpt4 book ai didi

mysql - MySQL 和 Rails 中的外键建议

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:07 25 4
gpt4 key购买 nike

<分区>

我正在从事我的第一个真正的 Rails 项目,正在寻求一些专业建议。

我希望在我的 MySQL 数据库中有四个表(用户、图书、评论、标签)并且应用以下业务规则。

一个用户可以对一本书发表一条或多条评论,但一条评论只能属于一本书。用户可以在一本书上放置一个或多个标签,但标签只能属于一本书。

在图形上,我想到了以下内容:(ascii 艺术永远不会消亡)

+---------+             +---------+  
| | | |
| | | |
| User |1 1| Book |
| |----- -----| |
+---------+ | | +---------+
| 1 | | | 1
| | | |
| | | |
| 1,* | | | 1,*
+---------+ | | 1,*+---------+
| | ---+----| |
| |1,* | | |
| Comment |--------- | Tag |
| | | |
+---------+ +---------+

我正在寻找有关如何在 Rails 中配置我的模型的任何建议。目前我正在寻找设置:

class Users
has_many :tags
has_many :comments
has_many :tagsBooks, :through=>tags, :class_name => "tags_books"
has_many :commentsBooks, :through=>comments, :class_name => "comments_books"
end

class Books
has_many :tags
has_many :comments
has_many :tagsUsers, :through=>tags, :class_name => "tags_users"
has_many :commentsUsers, :through=>comments, :class_name => "comments_users"
end

class Tags
belongs_top :users
belongs_to :books
end

class Comments
belongs_top :users
belongs_to :books
end

我“相信”这将有助于在标签和评论表中强制执行外键字段(User_id 和 Books_id)——这最终是我需要做的。我希望这将使我能够将标签和评论关联到用户和书籍中的任何一个/两者,即 books.tags 或 users.tags。

这是正确的吗?

只要在数据库和 rails 中强制执行外键,我很乐意完全改变设计。

干杯,

达摩

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com