gpt4 book ai didi

mysql - 如何使用外键创建sql表

转载 作者:搜寻专家 更新时间:2023-10-30 20:19:56 28 4
gpt4 key购买 nike

我想在我的服务器上创建一个 sqlDB,我是数据库开发的新手,几年前只在这里和那里做过一些零星的编码。我正在尝试构建一个数据库,其中有四个相互引用的表..

这就是创建每个表的目的,目的是让您更好地了解我正在努力实现的目标。

该表将存储用户为其他用户创建的中心。

用户存储创建组和加入组时使用的用户详细信息

//不确定下一个是不是个好主意,但希望有人能告诉我他们对此有何看法用户组此表存储所有或组和用户连接。当用户加入群组时,他们的 ID 将与群组 ID 一起存储。

国家国家/地区用于帮助限制可返回的结果数量

这是我创建的代码,我想在我的数据库上运行。我不确定我是否正确地制作了外键,如果有任何建议,我们也将不胜感激。

CREATE DATABASE tempDB
USE tempDB

CREATE TABLE Group (groupID UInt32 PRIMARY KEY, userID UInt32 references User(SID), country VARCHAR(20) references Country(SID));

CREATE TABLE User (userID UInt32 PRIMARY KEY, name VARCHAR(20), country VARCHAR(20) references Country(SID));

CREATE TABLE userGroups (userID references User(SID), groupID UInt32 references Group(SID));

CREATE TABLE countries (countryName VARCHAR(20) PRIMARY KEY);

所以三个问题:

  1. UserGroups 表是否值得?
  2. 我是否正确创建了外键?
  3. 此代码是否会创建一个包含 4 个表的数据库...

最佳答案

如果您的用户可以在多个组中,并且许多用户可以在一个组中,则将列和外键引用删除到组表中的 userid 字段。用户组表处理这种多对多映射。

只有假设每个组也有一个“所有者”用户,您当前的设置才有意义...

此外,您使用的是什么数据库引擎? Innodb 或 myisam...如果 myisam 外键与任何其他索引一样开玩笑,没有任何强制约束的能力,因此尝试和声明并不是很有用。

关于mysql - 如何使用外键创建sql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11497868/

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