• Where I work DD is used a lot by the other developers, so everyone but me as I very much dislike it.

    The problems I have with it are:

    1. It does modifications directly to the DB and in doing so recreates whole tables and relationships. This argument is not exclusively related to DD, but to any table modifications you do via the interface. In my view none of it is designed to be used extensivly on a filled database.

    The problem is compounded when you need to move changes from the development to a test or production environment. Suddenly you need an database comparison tool as there have been no modification scripts made along the way. This also makes it hard to do partial updates.

    Also, when I design a new (sub)-model, I want to be able to drop everything and recreate from scratch in the blink of an eye. This is very easy when you work from scripts or a tool that supports you in maintaining and updating those, but very hard with any direct action UI.

    2. DD hides details that are very important for the quality of the modeling. I want to see at a glance what indexes there are, what fields are covered by them and any other relevant parameter that influences performance.

    To have this kind of information in a consumable fashion I really need a create script that is compact and shows you these details in a declarative and well formatted form. This also helps me to keep an up to date modification script that can be directly applied to the target environment.

    3. Organizing and printing is a pain for anything but the smallest of (sub-) models. I have used full blown modeling packages in the past such as Power Designer (Data architect module) from Sybase and its predecessor S-Designer. They are very expensive, but did work very well for me as you can model and do versioning, independent of the database and can generate update scripts between modeled versions automatically. It also features well functioning reverse engineer functionality which comes into its own when you are confronted with a database for the first time.

    Just my 2c