Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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
Mysql 数据库表关系设计_Mysql_Sql_Database_Ms Access - Fatal编程技术网

Mysql 数据库表关系设计

Mysql 数据库表关系设计,mysql,sql,database,ms-access,Mysql,Sql,Database,Ms Access,我试图写一个数据库设计来包含以下关系,我试图从上到下,按层次结构来解决它们,但这些关系似乎以另一种方式更好地连接起来,我只是看不到,也无法表达如何连接 这来自于工作中的FOUO系统,因此名称已更改以反映该分类,这就是名称可能看起来很奇怪的原因 每个分支1:n个功能区 每栋建筑1:n组 每组1:n个单位 每个功能都有1:n个检查表 每个检查表1:n项,以及 每个单元1:n检查表和 这可以通过重新评估关系来解决,而不必考虑关系的大小或数据类型。1:n关系被用来代替n:n。我使用的一种简单方法是为每个

我试图写一个数据库设计来包含以下关系,我试图从上到下,按层次结构来解决它们,但这些关系似乎以另一种方式更好地连接起来,我只是看不到,也无法表达如何连接

这来自于工作中的FOUO系统,因此名称已更改以反映该分类,这就是名称可能看起来很奇怪的原因

每个分支1:n个功能区

每栋建筑1:n组

每组1:n个单位

每个功能都有1:n个检查表

每个检查表1:n项,以及

每个单元1:n检查表和


这可以通过重新评估关系来解决,而不必考虑关系的大小或数据类型。1:n关系被用来代替n:n。

我使用的一种简单方法是为每个配对设置表:分支功能、建筑功能、建筑组、组单元、单元检查表、检查表项,将对象和关系分开

它基本上是元组汤,但保持排序是关系数据库擅长的。访问将在多个表上执行主键联接。您希望数据集增长到多大


限制100个检查表等是政策。设计模式以实现简单性和性能,在应用程序层实现策略。

在设计数据库时,需要明确关系。例如,您需要提到一些事情,例如功能区域只能属于一个分支。这些将有助于确定我们将使用1:1关系或1:n关系或其他关系

然而,我已经想出了一个答案。

是的。如果需要多对多然后“桥接”表,如果您不局限于关系数据库,那么像Neo4j这样的图形数据库可以轻松处理这一问题。如果您仅限于关系数据库,草莓的评论是您最好的选择。每个功能区域是特定于一个分支的,还是可以属于多个分支?如果它可以属于多个分支,那么它可能是多个分支,您需要一个桥接表。但是,如果某个功能区域属于某个特定的分支,则只需在功能区域表中将BranchID作为外键。处理每个关系,回答相同的问题并选择适当的结构。尝试使用基数1或1或更多指定每个关系的两侧。例如,一座建筑物包含什么?1个或多个功能区域。功能区包含在?1建筑中。您还可以查看这两个选项。建筑物是否可以没有功能区?功能区是否可以在没有建筑的情况下存在。这要精确一点。您可以从那里开始构建。这在很大程度上完成了工作,但改变了分支1:n构建和分支1:n功能区域。[Link]@Andras提到这个数字现在是任意的,这让我想得更清楚一点。谢谢你,现在不用担心这些数字了,这让我对这段关系想得更清楚一点。