我目前正在重写一个旧的会计系统,并且我发现了一个数据库设计,我怀疑这个数据库设计很差。我对数据库设计没有太多的经验,所以我不能确定。改进前缀指定关系的数据库设计
在旧的系统中有一个Transactions表,并且该表中的每一行都有一个外键给另一个由某个前缀确定的表。例如:
| ID | VOUCHER |
| 1 | L-100801 |
| 2 | U-120407 |
| 3 | Z-622909 |
该表中有两列以上(实际上约15个)。如果一行代金券以L
开头,则它连接到Client Invoices
表。如果它以U
开头,它连接到Payments
表等。
我是否认为这是一个糟糕的设计?我该如何改进?每种类型应该分成哪一列?是否应该有用于连接记录的凭证类型表?
你应该在[程序员堆栈交换](http://programmers.stackexchange.com/)上提出这个问题。 – 2014-10-18 19:11:10