Privacy by design: collect less
Minimization
Go over forms, logs and analytics tools and ask of each field what's done with it. Fields collected “just in case” are a liability with no return.
Where possible, store an aggregate rather than a detail, or a masked value rather than a full identifier.
Lifecycle
For each data type: purpose, legal basis if relevant, retention time, and how it's deleted — including in backups and secondary systems. A deletion done only in the primary database isn't a deletion.
People's rights
Requests to view, correct and delete will arrive. If each requires a week of manual work, build the path once. And when transferring information to vendors — know to whom, why, and under which agreement.
Going deeper
Separate direct identifiers from behavioural data, and keep the linking key in a protected, controlled place. That way a leak of one store doesn't expose people, and you can give analysis access without giving identity access. In cases with specific regulatory requirements, it's worth getting appropriate professional advice.