diff --git a/aleksis/apps/alsijil/migrations/0012_unique_relation.py b/aleksis/apps/alsijil/migrations/0012_unique_relation.py
new file mode 100644
index 0000000000000000000000000000000000000000..6604e74121fb6881abc726b60e7d46846228c9d2
--- /dev/null
+++ b/aleksis/apps/alsijil/migrations/0012_unique_relation.py
@@ -0,0 +1,22 @@
+# Generated by Django 3.1.7 on 2021-03-21 17:04
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('chronos', '0004_substitution_extra_lesson_year'),
+        ('alsijil', '0011_tardiness_positive'),
+    ]
+
+    operations = [
+        migrations.AlterUniqueTogether(
+            name='lessondocumentation',
+            unique_together={('lesson_period', 'week', 'year', 'event', 'extra_lesson')},
+        ),
+        migrations.AlterUniqueTogether(
+            name='personalnote',
+            unique_together={('lesson_period', 'week', 'year', 'event', 'extra_lesson')},
+        ),
+    ]
diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index f8146cd797736fb48923df4190cead2d9133040c..9b9eb9d402bdf6feac213d87b80ca248a37a1f6c 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -250,6 +250,7 @@ class PersonalNote(RegisterObjectRelatedMixin, ExtensibleModel):
                 check=lesson_related_constraint_q, name="one_relation_only_personal_note"
             )
         ]
+        unique_together = ["lesson_period", "week", "year", "event", "extra_lesson"]
 
 
 class LessonDocumentation(RegisterObjectRelatedMixin, ExtensibleModel):
@@ -337,6 +338,7 @@ class LessonDocumentation(RegisterObjectRelatedMixin, ExtensibleModel):
                 check=lesson_related_constraint_q, name="one_relation_only_lesson_documentation",
             )
         ]
+        unique_together = ["lesson_period", "week", "year", "event", "extra_lesson"]
 
 
 class ExtraMark(ExtensibleModel):