如何为多个表创建外键?

时间:2018-09-27 20:00:54

标签: sql database graphql

我想存储类似于Google云端硬盘的文件结构。我可以创建几种类型的文件(文档,电子表格,..)。每个文件的详细信息都存储在其表中。

例如:

File [id, name, file_id]
Doc [file_id, title, a, b, c]
Spreadsheet [file_id, title, d, e]

如何正确处理?

2 个答案:

答案 0 :(得分:0)

文件

[ID,名称,文件ID]

文档类型,最终成为类别列表表

[文件ID,标题,扩展名]

然后以Doc_type为例:

|file_id | title | extension|
|0001    | Word  | DOCX     |
|0002    | Excel | XLSX     |

答案 1 :(得分:0)

外键不是这样工作的。您需要File.id作为主键,然后将File.id添加到其他每个表中,并使每个表都具有File.id的外键。从实际意义上讲,创建一个File实例,然后创建一个Doc或Spreadsheet并将其链接到File实例。