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 才能创建。
我的问题很简单。我正在创建数据库管理工具,用户可以在其中创建 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 才能创建。