diff --git a/beat/web/backend/migrations/0002_auto_20160330_0005.py b/beat/web/backend/migrations/0002_auto_20160330_0005.py
index f5a5332866de28514c4e072a450622fd9e1e7eb3..6ab1f84015350aaf58accdc9c456eb21e5ed6583 100644
--- a/beat/web/backend/migrations/0002_auto_20160330_0005.py
+++ b/beat/web/backend/migrations/0002_auto_20160330_0005.py
@@ -20,7 +20,7 @@ class Migration(migrations.Migration):
         migrations.AddField(
             model_name='slot',
             name='priority',
-            field=models.IntegerField(default=0, help_text=b'Priority of these slots on the defined queue'),
+            field=models.PositiveIntegerField(default=0, help_text=b'Priority of these slots on the defined queue'),
         ),
         migrations.AlterUniqueTogether(
             name='slot',
@@ -39,11 +39,46 @@ class Migration(migrations.Migration):
         migrations.AddField(
             model_name='worker',
             name='info',
-            field=models.TextField(null=True, blank=True),
+            field=models.TextField(help_text=b'Informative message from the worker in case it is inactive', null=True, blank=True),
         ),
         migrations.AddField(
             model_name='worker',
             name='memory',
-            field=models.IntegerField(default=0),
+            field=models.PositiveIntegerField(default=0, help_text=b'In megabytes'),
+        ),
+        migrations.AlterField(
+            model_name='queue',
+            name='cores_per_slot',
+            field=models.PositiveIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='queue',
+            name='max_slots_per_user',
+            field=models.PositiveIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='queue',
+            name='memory_limit',
+            field=models.PositiveIntegerField(help_text=b'In megabytes'),
+        ),
+        migrations.AlterField(
+            model_name='queue',
+            name='time_limit',
+            field=models.PositiveIntegerField(help_text=b'In minutes'),
+        ),
+        migrations.AlterField(
+            model_name='slot',
+            name='quantity',
+            field=models.PositiveIntegerField(help_text=b'Number of processing slots to dedicate in this worker for a given queue', verbose_name=b'Number of slots'),
+        ),
+        migrations.AlterField(
+            model_name='worker',
+            name='cores',
+            field=models.PositiveIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='environment',
+            name='previous_version',
+            field=models.ForeignKey(related_name='next_versions', on_delete=models.deletion.SET_NULL, blank=True, to='backend.Environment', null=True),
         ),
     ]
diff --git a/beat/web/backend/models.py b/beat/web/backend/models.py
index a216db7f20fe5c96151dc34333388ba72ee9c46d..9111451a04a752ee72ea55909494695103c39546 100644
--- a/beat/web/backend/models.py
+++ b/beat/web/backend/models.py
@@ -77,7 +77,8 @@ class Environment(Shareable):
     previous_version = models.ForeignKey('self',
         related_name='next_versions',
         null=True,
-        blank=True
+        blank=True,
+        on_delete=models.SET_NULL,
         )
 
     #_____ Meta parameters __________
@@ -131,11 +132,12 @@ class Worker(models.Model):
         default=True,
         )
 
-    cores = models.IntegerField()
+    cores = models.PositiveIntegerField()
 
-    memory = models.IntegerField(default=0)
+    memory = models.PositiveIntegerField(default=0, help_text='In megabytes')
 
-    info = models.TextField(null=True, blank=True)
+    info = models.TextField(null=True, blank=True,
+        help_text='Informative message from the worker in case it is inactive')
 
 
     #_____ Overrides __________
@@ -179,13 +181,13 @@ class Queue(models.Model):
 
     name = models.CharField(max_length=100, help_text=Messages['name'])
 
-    memory_limit = models.IntegerField(help_text='In megabytes')
+    memory_limit = models.PositiveIntegerField(help_text='In megabytes')
 
-    time_limit = models.IntegerField(help_text='In minutes')
+    time_limit = models.PositiveIntegerField(help_text='In minutes')
 
-    cores_per_slot = models.IntegerField()
+    cores_per_slot = models.PositiveIntegerField()
 
-    max_slots_per_user = models.IntegerField()
+    max_slots_per_user = models.PositiveIntegerField()
 
     environments = models.ManyToManyField(
         Environment,
@@ -264,22 +266,18 @@ class Queue(models.Model):
 
 class Slot(models.Model):
 
-    queue = models.ForeignKey(
-        Queue,
-        related_name='slots',
-        )
+    queue = models.ForeignKey(Queue, related_name='slots',
+        on_delete=models.CASCADE)
 
-    worker = models.ForeignKey(
-        Worker,
-        related_name='slots',
-        )
+    worker = models.ForeignKey(Worker, related_name='slots',
+        on_delete=models.CASCADE)
 
-    quantity = models.IntegerField(
+    quantity = models.PositiveIntegerField(
         'Number of slots',
         help_text='Number of processing slots to dedicate in this worker for a given queue'
         )
 
-    priority = models.IntegerField(
+    priority = models.PositiveIntegerField(
         default=0,
         help_text='Priority of these slots on the defined queue'
         )