diff --git a/app/models.py b/app/models.py
index 810518d71104f784576d34245d139ff9d86e6758..43f9e90d73202e5f8e190e7c2651f3e4b196e929 100644
--- a/app/models.py
+++ b/app/models.py
@@ -241,10 +241,7 @@ class User(UserMixin, db.Model):
         '''
         Delete the user and its corpora and jobs from database and filesystem.
         '''
-        for job in self.jobs:
-            job.delete()
-        for corpus in self.corpora:
-            corpus.delete()
+
         db.session.delete(self)
         db.session.commit()
 
@@ -365,10 +362,7 @@ class Job(db.Model):
         '''
         Delete the job and its inputs and results from the database.
         '''
-        for input in self.inputs:
-            db.session.delete(input)
-        for result in self.results:
-            db.session.delete(result) # TODO: shouldn't this happen through the cascade option?
+
         db.session.delete(self)
         db.session.commit()
 
@@ -528,8 +522,6 @@ class Corpus(db.Model):
                 'files': {file.id: file.to_dict() for file in self.files}}
 
     def delete(self):
-        for corpus_file in self.files:
-            db.session.delete(corpus_file)
         db.session.delete(self)
         db.session.commit()