Sql 数据库模式关系设计
你好 我是数据库设计新手,我正在尝试为模型设计一个非常简单的模式 我只是想知道这是否是设计它的最佳方式,因为这是我第一次,我不想在没有查看的情况下构建它Sql 数据库模式关系设计,sql,sql-server,database,database-design,Sql,Sql Server,Database,Database Design,你好 我是数据库设计新手,我正在尝试为模型设计一个非常简单的模式 我只是想知道这是否是设计它的最佳方式,因为这是我第一次,我不想在没有查看的情况下构建它 Pokemon表: 我获取名称、id(PK)、类型(FK)、图像和区域id(FK) type是type表中的外键,具有一对多关系。听起来对吗?我这样想是因为一个口袋妖怪可以有多种类型?而且,多个口袋妖怪可以有多种类型,这对我来说很有意义 regionID是来自Region表的外键许多口袋妖怪可以生活在许多地区对我来说很有意义。还是说一个口袋妖
Pokemon表:
- 我获取
名称、id(PK)、类型(FK)、图像和区域id(FK)
是type
表中的外键,具有type
关系。听起来对吗?我这样想是因为一个口袋妖怪可以有多种类型?而且,一对多
多个口袋妖怪可以有多种类型,这对我来说很有意义
是来自regionID
表的外键Region
对我来说很有意义。还是说一个口袋妖怪可以生活在多个地区?或者多个区域可以有多个口袋妖怪许多口袋妖怪可以生活在许多地区
地区表:
- 我这里只有一个
。我是否也需要来自PK
表的FKLocationwithin Region
- 我这里有一个
关系,因为一对多
,但是1个区域可以有多个位置
。是这样吗一个位置不能有多个区域
类型表
:
- 我将所有这些类型都设置为位,以便表示布尔值。我希望能够查询pokemon表,查找所有相关数据,并在可以找到pokemon的区域中找到true或false
- 为每个表提供一个单数名称<代码>用户非
作为每个用户
行表示用户李> - 为每个表提供尽可能最小的主键。大多数 如果使用identity int就可以了
- 在外键列上创建索引。这将有助于加入
Pokemon
和Type
之间存在多对多关系。因此,我将从口袋妖怪
表中删除口袋妖怪字符串
,并创建一个表类型(Id int Identity PK,Description string Unique)
和一个表口袋妖怪(口袋妖怪上的口袋妖怪int FK,Type上的Type Id int FK,两列上的PK)
在口袋妖怪
和区域
之间也存在多对多关系
通常,要表示多对多关系,需要在两个表之间建立一个查找表
类似于A(id)->查找(A.id,B.id)一般来说:
- 为每个表提供一个单数名称<代码>用户非
作为每个用户
行表示用户李> - 为每个表提供尽可能最小的主键。大多数 如果使用identity int就可以了
- 在外键列上创建索引。这将有助于加入
Pokemon
和Type
之间存在多对多关系。因此,我将从口袋妖怪
表中删除口袋妖怪字符串
,并创建一个表类型(Id int Identity PK,Description string Unique)
和一个表口袋妖怪(口袋妖怪上的口袋妖怪int FK,Type上的Type Id int FK,两列上的PK)
在口袋妖怪
和区域
之间也存在多对多关系
通常,要表示多对多关系,需要在两个表之间建立一个查找表
类似于A(id)->Lookup(A.id,B.id)的pokmontype主键类型需要与pokmon表的FK匹配,看起来已经匹配了。
Type table
的PK
是pokemon表中的FK
。pokmontype主键类型需要与pokmon table的FK匹配,看起来已经匹配了。Type表的PK
是口袋妖怪表中的FK
。