Как это не парадоксально, но я бы советовал не проектировать бд отдельно от фреймворка на котором планируется собирать проект; Вначале определится на чем пишем, затем выписать список - какие бд поддерживаются, и только потом уже смотреть какие есть tools под фреймворк для работы с бд