Index: modules/aggregator/aggregator.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.install,v
retrieving revision 1.8
diff -u -p -r1.8 aggregator.install
--- modules/aggregator/aggregator.install	26 Sep 2006 14:19:00 -0000	1.8
+++ modules/aggregator/aggregator.install	20 Jan 2007 02:07:49 -0000
@@ -17,18 +17,6 @@ function aggregator_install() {
         UNIQUE KEY title (title)
       ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
 
-      db_query("CREATE TABLE {aggregator_category_feed} (
-        fid int NOT NULL default '0',
-        cid int NOT NULL default '0',
-        PRIMARY KEY (fid,cid)
-      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
-
-      db_query("CREATE TABLE {aggregator_category_item} (
-        iid int NOT NULL default '0',
-        cid int NOT NULL default '0',
-        PRIMARY KEY (iid,cid)
-      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
-
       db_query("CREATE TABLE {aggregator_feed} (
         fid int NOT NULL auto_increment,
         title varchar(255) NOT NULL default '',
@@ -56,7 +44,34 @@ function aggregator_install() {
         timestamp int default NULL,
         guid varchar(255),
         PRIMARY KEY (iid),
-        KEY fid (fid)
+        KEY fid (fid),
+        FOREIGN KEY (fid)
+          REFERENCES {aggregator_feed} (fid)
+          ON UPDATE CASCADE ON DELETE CASCADE
+      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+
+      db_query("CREATE TABLE {aggregator_category_feed} (
+        fid int NOT NULL default '0',
+        cid int NOT NULL default '0',
+        PRIMARY KEY (fid,cid),
+        FOREIGN KEY (fid)
+          REFERENCES {aggregator_feed} (fid)
+          ON UPDATE CASCADE ON DELETE CASCADE,
+        FOREIGN KEY (cid)
+          REFERENCES {aggregator_category} (cid)
+          ON UPDATE CASCADE ON DELETE CASCADE
+      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+
+      db_query("CREATE TABLE {aggregator_category_item} (
+        iid int NOT NULL default '0',
+        cid int NOT NULL default '0',
+        PRIMARY KEY (iid,cid),
+        FOREIGN KEY (iid)
+          REFERENCES {aggregator_item} (iid)
+          ON UPDATE CASCADE ON DELETE CASCADE,
+        FOREIGN KEY (cid)
+          REFERENCES {aggregator_category} (cid)
+          ON UPDATE CASCADE ON DELETE CASCADE
       ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
 
       break;
@@ -74,12 +89,24 @@ function aggregator_install() {
         fid int NOT NULL default '0',
         cid int NOT NULL default '0',
         PRIMARY KEY (fid,cid)
+        FOREIGN KEY (fid)
+          REFERENCES {aggregator_feed} (fid)
+          ON UPDATE CASCADE ON DELETE CASCADE
+        FOREIGN KEY (cid)
+          REFERENCES {aggregator_category} (cid)
+          ON UPDATE CASCADE ON DELETE CASCADE
       )");
 
       db_query("CREATE TABLE {aggregator_category_item} (
         iid int NOT NULL default '0',
         cid int NOT NULL default '0',
         PRIMARY KEY (iid,cid)
+        FOREIGN KEY (iid)
+          REFERENCES {aggregator_item} (iid)
+          ON UPDATE CASCADE ON DELETE CASCADE
+        FOREIGN KEY (cid)
+          REFERENCES {aggregator_category} (cid)
+          ON UPDATE CASCADE ON DELETE CASCADE
       )");
 
       db_query("CREATE TABLE {aggregator_feed} (
