Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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_Sqlite - Fatal编程技术网

`对象`外键?sql表设计

`对象`外键?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,因此

我有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,因此解决方案是ok

8个不同的可为null的外键列如何,并带有一个检查约束,即只有一个不为null?其他桌子之间有什么不同?您能将它们合并到一个表中,并使用一个类型列吗?@JeffS:woulldn这不会占用更多的空间吗?因为这是我认为可以损坏或丢失/删除的少数数据之一,所以我不会使用FK。取决于您使用的DBM,您也可以稍后添加一个触发器来强制执行该约束。@acidzombie24 NULL在sqlite中占用一个字节的空间,因此对于其中的8个,它将是每行8个字节。