Quick search leads to two solutions: coding (event receiver) or InfoPath rule.
The cost of "coding" is high. We need developer to build it, need someone to manage the source code, and need to upgrade the assembly when upgrading SharePoint. And, the deployment will cause farm outage!
InfoPath solution also has its own problem: it is always with expensive "license" fee.
So, is there simple approach to resolve the problem? Below is how I did it, with a simple declarative workflow.
The workflow doesn't prevent "duplicate entries", but can generate warning message, so users can fix the invalid data after the remind. That's good enough in most of the cases.
- The structure of the test list (CombinedKey = Title & ProjectCode)
- Declarative workflow triggered by "new item" and "edit item" event
- Test result