`对象`外键?sql表设计
我有8个表,导致用户消息。有可能有一个包含列的表吗`对象`外键?sql表设计,sql,sqlite,Sql,Sqlite,我有8个表,导致用户消息。有可能有一个包含列的表吗 messageID, user, type, fID 类型和fId一起使用以确定fId表指向的位置?可能吗?我想不是。我应该像这样创建8+个不同的消息表吗 MessageType1 messageID, user, fID MessageType2 messageID, user, fID ... up to 8 or more 我使用的是sqlite,但我可以使用mysql或psql。我在工作中使用SqlServer,因此
messageID, user, type, fID
类型和fId一起使用以确定fId表指向的位置?可能吗?我想不是。我应该像这样创建8+个不同的消息表吗
MessageType1
messageID, user, fID
MessageType2
messageID, user, fID
... up to 8 or more
我使用的是sqlite,但我可以使用mysql或psql。我在工作中使用SqlServer,因此解决方案是ok8个不同的可为null的外键列如何,并带有一个检查约束,即只有一个不为null?其他桌子之间有什么不同?您能将它们合并到一个表中,并使用一个类型列吗?@JeffS:woulldn这不会占用更多的空间吗?因为这是我认为可以损坏或丢失/删除的少数数据之一,所以我不会使用FK。取决于您使用的DBM,您也可以稍后添加一个触发器来强制执行该约束。@acidzombie24 NULL在sqlite中占用一个字节的空间,因此对于其中的8个,它将是每行8个字节。