From Wikipedia's article on DRY Software:
The DRY principle is stated as "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system." The principle has been formulated by Andy Hunt and Dave Thomas in their book The Pragmatic Programmer. They apply it quite broadly to include "database schemas, test plans, the build system, even documentation".
From Wikipedia's article on Single Source of Truth:
In Information Systems design and theory, as instantiated at the Enterprise Level, Single Source Of Truth (SSOT) refers to the practice of structuring information models and associated schemata such that every data element is stored exactly once (e.g., in no more than a single row of a single table). Any possible linkages to this data element (possibly in other areas of the relational schema or even in distant federated databases) are by reference only.
My question: If I am writing a database application, and I have already written specific code to validate user-inputted data, would I breaking the principles of DRY and SSoT to define my database field's data types to most closely match the data it's expecting? (As opposed to say, just using text data types for every field. For the moment, let's ignore other potential benefits like indexing).