Project Overview

I am creating a system which will allow our team to build pages for a "campaign" which have forms. Design might be same, similar or different for each page. Each page will then send the form data filled by a user to the DB and a thank you message will be shown.


Q: I want the user data (called leads) to be entered just once i.e. there should be myemail@domain.com in a table that gets linked to each campaign so that duplicity is minimsed. In this case:

Campaigns 1 -> * instances 1 -> * instance_leads * -> 1 leads

Q; Each campaign will have form fields & some text (headings, thank you text) that may on occasion be in a different language.. so I do:

Campaigns 1 -> * fields 1 -> * translation

Q: The problem is that what about thank you text? do i store it here or a separate translations table? what would be the fields for translation table?

Sometimes the client (whom we build this landing page) give us a list of users already signed up, and say if this email registers, delete them. Do i create a separate table for this?

Now I also want a table (emails or domains) which are fake/temp domains. Do i create two tables for this (one for email, one for domain), do i combine this table with suppression table above?