2014-12-02 110 views
0

我想写出一个数据库设计包括以下关系,我试图将其从顶部工作了下来,分层,但彼此的关系似乎是更好的连接的另一种方式,我做不到看,或表达如何。数据库表关系的设计

(这是来自一个FOUO系统的工作,所以名称已被更改,以反映分类,这就是为什么名称可能看起来很奇怪。)

每个分公司 1:N 功能区

每个大厦1:N

每个组1:N 单位

每个FunctionalArea 1:n的清单

每个清单 1:n的项目,和

每个单位 1:n的清单

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

+2

是。如果多对多然后需要'桥接'表 – Strawberry 2014-12-02 01:26:20

+2

如果您不限于关系数据库,像Neo4j这样的图形数据库可以轻松处理。如果您仅限于关系数据库,Strawberry的评论是您的最佳选择。 – JRLambert 2014-12-02 01:31:59

+0

每个功能区域是特定于分支的,还是可以属于多个分支?如果它可以属于多个分支,那么它是一个多对多的分支,你需要一个桥接表。但是,如果某个功能区属于特定分支,则所有需要的都是BranchID作为功能区域表中的外键。通过回答相同问题的每个关系来解决问题,并选择合适的结构。 – Dijkgraaf 2014-12-02 01:59:07

回答

0

当你设计你需要具体介绍一下关系的数据库。例如,您需要提到诸如“功能区域只能属于一个分支”的情况。这些将有助于确定我们是否有1:1关系或1:n或其他什么。

但是我想出了一个答案。 see the image

+0

大部分工作都做了,但改变了分支1:n建筑和分支1:n功能区域。在[Link] http://stackoverflow.com/users/4296944/andras @Andras之后,没有必要建立FUnctionalArea。安德拉斯提到此时的仲裁人数,让我更清楚地思考一下。 – ratchet 2014-12-02 05:22:31

0

我用过的一个简单的方法就是处理每个配对的表格:分支功能,建筑功能,建筑群组,单元清单,检查清单项目,保留对象和关系是分开的。

它基本上是元组的汤,但保持该排序是怎样一种关系数据库所擅长的。访问将在多个表上进行主键连接。你期望你的数据集有多大?

限(100个检查表,等等)是政策。为简化和性能设计架构,在应用层实施策略。

+0

谢谢,现在不用担心现在的数字,我可以更清楚地了解这种关系。 – ratchet 2014-12-02 05:23:18