table 在 mysql 中创建它们之间的关系时顺序重要吗?

Is table order imporant in mysql when creating relation between them?

我的问题很简单。我正在创建数据库管理工具,用户可以在其中创建 table 之间的关系,但我不确定在创建关系时 table 顺序是否重要。

例如:我有两个 tables 'user'(user_id(INT, PRIMARY KEY), name(VARCHAR), email(VARCHAR))'post'(post_id(INT, PRIMARY KEY), content(TEXT), author(INT)).

当用户从两个 table('user'(user_id)'post'(author))工具中 select 编辑一列时,工具会创建一个查询:

ALTER TABLE 'user' ADD CONSTRAINT 'user_id_to_author' FOREIGN KEY ('user_id') REFERENCES post('author')

但如果用户 select table 的顺序不同('post'(author)'user'(user_id)),则查询将如下所示:

ALTER TABLE 'post' ADD CONSTRAINT 'author_to_user_id' FOREIGN KEY ('author') REFERENCES user('user_id')

这两个查询之间有什么区别吗?如果有的话是什么?

您正在定义 one-to-many 关系,因此关系的方向很重要。

修改后的table是childtable;许多行可能会通过 parent table.

的主键引用 parent table

这里给出的例子,一个post 属于一个用户,很多post可能是同一个作者,所以你要:

ALTER TABLE post
    ADD CONSTRAINT author_to_user_id
    FOREIGN KEY (author) REFERENCES user(user_id)

请注意 object 名称不应用单引号引起来。

试图以相反的方式建立关系是没有意义的。这意味着用户需要 post 才能创建