抽象表设计问题

时间:2011-09-07 17:43:44

标签: mysql database database-design

我正在研究一个文档系统并遇到一些逻辑/架构问题。在这个系统中将有许多类型的文件 - 传入,传出等。每个文档类型都有自己的cols数量必须填充。在论文上一切都很简单,但在软件中 - 我需要一些建议:)

例如:

incoming document type 1 have 16 cols, 
outgoing document type 1 have 15cols, 
inner document have 9 cols,
etc...

起初我想,我将创建一个名为“Categories”的表,其中将存储(在树中)文档类型(传入,传出等)和一个通用表“Documents”,其中包含最多可能的行(用于例25)将存储所有文件,如果没有使用某些单元格,则忽略它。

在我认为我可以为每种类型的文件制作一个更简单的 - 自己的桌子,但经过一些思考似乎是最糟糕的解决方案。

所以我想要最好的解决方案。

也许你可以帮助我?

谢谢!

2 个答案:

答案 0 :(得分:4)

这是表继承的典型示例。你会做这样的事情:

Document
----------
DocumentId (PK)
DocumentType
... any columns common to the different formats

DocumentIncoming
----------
DocumentId (PK, FK to Document)
... columns specific to Incoming

DocumentOutgoing
----------
DocumentId (PK, FK to Document)
... columns specific to Outgoing

答案 1 :(得分:1)

使用包含类别代码的中央“文档”表,并且只包含适用于每个类别的列。

然后,对于每个类别,使用一个表链接回文档中的相应记录,并“添加”适用于该类别的其他列。