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,我有7张桌子。每个表表示传输类型,其中表中的每一行表示传输 以下是表格: 有些表有任务参考id字段,有些表没有。 这意味着一个任务可以被多个表引用。 不,我必须更改此结构:每个带有task_reference_id字段的传输表都应该引用多个task reference。 这意味着我需要添加5个带有字段的表:task\u id、transmission\u id,它们将保存任务引用。 但这让我想到,与其添加5个新表,也许我可以创建父“传输”表,所有其他表都将从中“继承”(主键将是父表中的fore

我有7张桌子。每个表表示传输类型,其中表中的每一行表示传输

以下是表格:

有些表有任务参考id字段,有些表没有。
这意味着一个任务可以被多个表引用。
不,我必须更改此结构:每个带有task_reference_id字段的传输表都应该引用多个task reference。
这意味着我需要添加5个带有字段的表:task\u id、transmission\u id,它们将保存任务引用。
但这让我想到,与其添加5个新表,也许我可以创建父“传输”表,所有其他表都将从中“继承”(主键将是父表中的foreing键)。
这样,只需要一个表就可以引用任务。此表将包含基本传输id、任务id字段

你觉得怎么样?
更好的方法是:添加5个表或更改父表的结构,这样我只需添加1个表即可引用任务。

我会选择超类型/子类型,我会选择超类型/子类型,子类型就是我想要的。你认为它比5个引用表好吗?@Naor,我认为,也将所有公共列(对于5个表)移动到超类型表中。我只有两个公共字段。。对于id字段,supertable有3个字段。创建超类型就足够了吗?@Naor,是的-尽管我已经计算了9+1公共字段<代码>记录\ id、工人\ id、工人\个人\ id、车辆\ id、车辆\编号、分包商\ id上次更新、第一次\公司\活动\日期时间、状态\ id、任务\参考\ id。我希望。。如果你说的是真的,我的生活就轻松多了。例如,在T_PORT_CONTRACT_AFFILIATION上,此字段不是必需的:worker_id、worker_personal_id、vehicle_id、vehicle_编号、subcontractor_id、first_company_activity_datetime、task_reference_id。子类型是什么。你认为它比5个引用表好吗?@Naor,我认为,也将所有公共列(对于5个表)移动到超类型表中。我只有两个公共字段。。对于id字段,supertable有3个字段。创建超类型就足够了吗?@Naor,是的-尽管我已经计算了9+1公共字段<代码>记录\ id、工人\ id、工人\个人\ id、车辆\ id、车辆\编号、分包商\ id上次更新、第一次\公司\活动\日期时间、状态\ id、任务\参考\ id。我希望。。如果你说的是真的,我的生活就轻松多了。例如,在T_PORT_CONTRACT_AFFILIATION(港口合同关系)上,不需要此字段:工人id、工人个人id、车辆id、车辆编号、分包商id、第一公司活动日期时间、任务参考id。