Database design 归一化具有独立相关性的数据列

Database design 归一化具有独立相关性的数据列,database-design,database-normalization,functional-dependencies,Database Design,Database Normalization,Functional Dependencies,是一家为房地产代理搭建董事会的公司,例如出售、出租董事会 当代理发布作业时,董事会地址、拥有董事会的代理和作业类型都会被存储 注意:属性前的星号是主键,属性后的星号是外键。并非所有表格都显示 现在我有了一个作业类型表。每个作业都有一个: 董事会id(添加客户和董事会所在地) 工作类型识别号(是否正在放置板、取下、更改、添加销售单等) 这是我的工作类型表 JOB_TYPES *job_type_id action board slip 数据如下所示:(省略行) 我一直在尝试有效地规范化我的数

是一家为房地产代理搭建董事会的公司,例如出售、出租董事会

当代理发布作业时,董事会地址、拥有董事会的代理和作业类型都会被存储

注意:属性前的星号是主键,属性后的星号是外键。并非所有表格都显示

现在我有了一个作业类型表。每个作业都有一个:

  • 董事会id(添加客户和董事会所在地)
  • 工作类型识别号(是否正在放置板、取下、更改、添加销售单等)
这是我的工作类型表

JOB_TYPES
*job_type_id
action
board
slip
数据如下所示:(省略行)

我一直在尝试有效地规范化我的数据库,根据规范化,表中的数据应该只直接依赖于ID,例如代理名称和代理办公室直接依赖于代理ID

但在作业类型表中,SLIP直接取决于BOARD列,BOARD列直接取决于action列

但是,用一个键将所有列单独放到单独的表中肯定是不对的,不是吗

我想我模糊的问题是:

Is this okay?
Or in the real world, do people use better method or storing data like this?
但在“工作类型”表中,单子直接取决于董事会 列,而board列直接依赖于action列

依赖性是规范化中的一个技术术语;它有确切的含义。这是你的部分数据

JOB_TYPES
id | action       | board    | slip
-----------------------------------
1  | up           | for sale | sold
2  | up           | to let   | let by
3  | up           | for sale | null
4  | up           | to let   | null
在正常化方面,问题是

  • “行动决定董事会吗?”是指
  • “给定‘动作’的一个值,我是否知道‘板’的一个且只有一个值?”
答案显然是“不”。给定
action='up'
,您至少知道“board”的两个不同值:“待售”和“出租”。所以这里没有函数依赖关系

话虽如此,我不得不说工作类型表看起来确实有点奇怪。我怀疑您将多个独立的事实捆绑到一个表中,但在做出判断之前,我希望看到更多具有代表性的数据。(想想“挂板”、“挂纸条”、“取板”、“取纸条”。)


将多个独立事实捆绑到一个表中会创建一个多值依赖关系,您可以通过规范化为4NF或5NF来修复该依赖关系。

两行“待售”/“待售”和“待售”/null与您的陈述相矛盾,即从板到板之间存在函数依赖关系。

如果您给我们提供真实的表定义,而不是asterix符号,可能会有人对此进行调查。注意:
board\u id
列在pending\u jobs表中是一个FK,但在任何表(boards?)中都不是PK。我这样做是因为我不知道如何在代码下面划线。。。如果需要,我可以显示完整的ERD
Is this okay?
Or in the real world, do people use better method or storing data like this?
JOB_TYPES
id | action       | board    | slip
-----------------------------------
1  | up           | for sale | sold
2  | up           | to let   | let by
3  | up           | for sale | null
4  | up           | to let   | null