Sql server sqlserver中的数据库表关系
我的数据库中有一个作业(作业)表和一个工具表。刀具表分为两部分,一部分是类别(刀具类别),另一部分是刀具数据(常用刀具) 现在我想问的是,我有一个工作表单,在这个表单中,我必须选择一些下拉字段,这些字段是从工具(通用工具)中为不同类别(工具类别)列出的。我在下面给出两种方法。请建议哪一个更好,为什么 方法1 我已经创建了一个表“tools\u in\u jobs”,其中包含三个字段,我们可以通过该表知道为job form中的哪个类别选择了哪个工具值 方法2 另一种方法是,我们可以为每个工具创建单独的表,而不是为所有工具创建公共表,如下图所示。但这里需要注意的是,这两个表(job_教员和job_专业知识)只是一个例子,可能有5到6个这样的表,因为我使用的是来自不同类别的5到6个工具Sql server sqlserver中的数据库表关系,sql-server,database,database-design,foreign-keys,entity-relationship,Sql Server,Database,Database Design,Foreign Keys,Entity Relationship,我的数据库中有一个作业(作业)表和一个工具表。刀具表分为两部分,一部分是类别(刀具类别),另一部分是刀具数据(常用刀具) 现在我想问的是,我有一个工作表单,在这个表单中,我必须选择一些下拉字段,这些字段是从工具(通用工具)中为不同类别(工具类别)列出的。我在下面给出两种方法。请建议哪一个更好,为什么 方法1 我已经创建了一个表“tools\u in\u jobs”,其中包含三个字段,我们可以通过该表知道为job form中的哪个类别选择了哪个工具值 方法2 另一种方法是,我们可以为每个工具创建
如果还有其他建议,也请提出来。我真的不明白您想要实现什么,但我能说的是,方法2一点也不好。每个工具一张桌子?哪些字段都相同?不!这是一个巨大的开销,相当于程序中的“重复代码”。我认为可维护性、可扩展性等也非常糟糕 然后来探讨一个问题——我不明白为什么“工作中的工具”表与工具和类别有关系——与工具的关系不够吗?(看起来像是无用的冗余)或者这个类别的含义是什么
正如我所说的,你真的需要对你想要实现的目标做出更好的解释。然后我将进行编辑。当然方法1是首选方法,但从作业中删除工具类别id,以及作业中的工具和工具类别之间的关系,以使设计正常化
方法2意味着每次添加新工具时都要创建一个新表,编写和维护更多的代码,维护更多的表和索引,并使用更多的存储。是的,您是对的,我们可以从作业表中的工具中删除工具类别id,因为它已经与常用工具相关,反过来又与类别相关。谢谢你的回复,因为我在这里得到了答案。在tenhouse的建议下,我已经做出了这些改变。