以下设计是否可以解决任何问题? 我想为同一个表创建一个联结表。 “ON DELETE CASCADE”也应该有用。
"source table (combining
archive,object,sharedobject,source as a single table )"
FileListTable
-------------------------------
id file_type_id filename license details
1 1 A:/aa/bb/cc.c xxx
2 2 A:/aa/bb/aa.cpp yyy
3 2 A:/aa/bb/bb.cpp zzz
4 2 A:/aa/bb/cc.cpp ttt
5 6 A:/aa/bb/cc.so abc
6 5 A:/aa/bb/cc.a axy
7 7 A:/aa/bb/cc.o ass
8 8 A:/aa/bb/cc.o ass
-----------------------------------------
文件类型表,文件扩展名为ids。
file type table
-------------------
file_type_id file_ext
1 .c
2 .cpp
3 .h
4 .sh
5 .a
6 .so
7 binary_with_no_ext
8 .o
---------------------------------
filelist_junction_table
------------------
file_id_1 file_id_2
5 6
5 7
5 8
.. so on
----------------
以下是上述联结表的查询。
CREATE TABLE `filelist_junction_table` (
`file_id_1` int(11) NOT NULL,
`file_id_2` int(11) NOT NULL,
PRIMARY KEY (`file_id_1`,`file_id_2`),
KEY `FK_file_id_idx` (`file_id_2`)
CONSTRAINT `FK_file_id_1` FOREIGN KEY (`file_id_1`) REFERENCES `FileListTable` (`id`) ON DELETE CASCADE,
CONSTRAINT `FK_file_id_2` FOREIGN KEY (`file_id_2`) REFERENCES `FileListTable` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;