Index: database/drizzle/schema/builds.ts
===================================================================
--- database/drizzle/schema/builds.ts	(revision ee1fa4e0ca436ce6cc48ebaf2a80522872cb79eb)
+++ database/drizzle/schema/builds.ts	(revision 6196d609d200de0e04c2c142c0150d778cb11ec6)
@@ -1,3 +1,3 @@
-import {pgTable, serial, integer, text, numeric, boolean, date, primaryKey, check} from "drizzle-orm/pg-core";
+import {pgTable, serial, integer, text, numeric, boolean, date, primaryKey, check, unique} from "drizzle-orm/pg-core";
 import { usersTable } from "./users";
 import { componentsTable } from "./components";
@@ -58,15 +58,19 @@
 
 export const reviewsTable = pgTable("review", {
-    id: serial("id").primaryKey(),
+        id: serial("id").primaryKey(),
 
-    buildId: integer("build_id")
-        .notNull()
-        .references(() => buildsTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
-    userId: integer("user_id")
-        .notNull()
-        .references(() => usersTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
-    content: text("content").notNull(),
-    createdAt: date("created_at").notNull(),
-});
+        buildId: integer("build_id")
+            .notNull()
+            .references(() => buildsTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
+        userId: integer("user_id")
+            .notNull()
+            .references(() => usersTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
+        content: text("content").notNull(),
+        createdAt: date("created_at").notNull()
+    },
+    (t) => ({
+        uniqueUserBuild: unique().on(t.buildId, t.userId),
+    }),
+);
 
 export type buildItem = typeof buildsTable.$inferSelect;
