Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 数据库模式关系设计_Sql_Sql Server_Database_Database Design - Fatal编程技术网

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
    。我是否也需要来自
    Locationwithin Region
    表的FK
  • 我这里有一个
    一对多
    关系,因为
    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