Question

Existe-il des bases de données rapide protoyping outils qui ne nécessitent pas de moi de déclarer un schéma de base de données, mais plutôt de créer sur la base de la façon dont je suis l'aide de mes entités.

Par exemple, en supposant une base de données vide (pseudo-code):

user1 = new User()  // Creates the user table with a single id column
user1.firstName = "Allain" // alters the table to have a firstName column as varchar(255)

user2 = new User()  // Reuses the table
user2.firstName = "Bob"
user2.lastName = "Loblaw"  // Alters the table to have a last name column

Puisqu'il y a des hypothèses logiques qui peuvent être faites lors de la création dynamique du schéma, et vous avez toujours la possibilité de remplacer son choix à l'aide de votre DB outils pour le modifier plus tard.

Aussi, vous pouvez générer votre schéma par les tests unitaires, il de cette façon.

Et, évidemment, ce n'est que pour le prototypage.

Est-il quelque chose comme cela là-bas?

Était-ce utile?

La solution

Google, Moteur de l'Application les œuvres de ce genre.Lorsque vous téléchargez la trousse d'outils, vous obtenez une copie locale de la base de données du moteur pour les essais.

Autres conseils

Graal utilise Hibernate persister des objets du domaine et produit un comportement similaire à ce que vous décrivez.Pour modifier le schéma, il vous suffit de modifier le nom de domaine, dans ce cas simple, le fichier est nommé Utilisateur.groovy.

class User {

    String userName
    String firstName
    String lastName
    Date dateCreated
    Date lastUpdated

    static constraints = {
        userName(blank: false, unique: true)
        firstName(blank: false)
        lastName(blank: false)
    }

    String toString() {"$lastName, $firstName"}

}

L'enregistrement du fichier modifie le schéma automatiquement.De même, si vous êtes en utilisant des échafaudages il est mis à jour.Le processus de prototype devient l'exécution de l'application, affichez la page dans votre navigateur, modifier le domaine, actualisez le navigateur, et de voir les changements.

Je suis d'accord avec le NHibernate approche et automatique de la base de données-génération.Mais, si vous voulez éviter d'écrire un fichier de configuration, et de rester à proximité de ce code, utilisez du Château ActiveRecord.Vous déclarez le schéma directement sur la classe via des attributs.

[ActiveRecord]
public class User : ActiveRecordBase<User>
{
     [PrimaryKey]
     public Int32 UserId { get; set; }

     [Property]
     public String FirstName { get; set; }
}

Il existe une variété de contraintes que vous pouvez appliquer (validation, les limites, etc) et vous pouvez déclarer les relations entre les différentes données modèle de classes.La plupart de ces options sont l'ajout de paramètres pour les attributs.C'est plutôt simple.

Donc, vous travaillez avec le code.Déclarant d'utilisation dans le code.Et lorsque vous avez terminé, laissez ActiveRecord créer la base de données.

ActiveRecordStarter.Initialize();
ActiveRecordStarter.CreateSchema();

Peut être pas exactement la réponse à vos général question, mais si vous avez utilisé (N)Hibernate ensuite, vous pouvez générer automatiquement le schéma de base de données à partir de votre hbm fichiers de mappage.

Ses pas le faire directement à partir de votre code que vous semblez vouloir mais Hibernate génération de Schéma semble bien fonctionner pour nous

Voulez-vous le schéma, mais il a généré, ou avez-vous fait envie PAS de schéma?

Pour les anciens, j'irais avec nhibernate comme @tom-carter dit.Faire générer votre schéma pour vous, et vous êtes tous bien (au moins jusqu'à ce que vous lancez votre application, puis de regarder quelque chose comme Tarantino et RedGate SQL Diff ou quelque chose comme ça pour générer des scripts de mise à jour)

Si vous voulez le dernier....google app engine pour cela, que j'ai découvert cet après-midi, et c'est très agréable.Si vous voulez coller avec du code sous votre contrôle, je vous suggère de regarder CouchDB, quoique c'est un peu de travail en amont obtenir le programme d'installation.Mais une fois que vous l'avez, c'est un produit totalement, à 100% de schéma-base de données gratuite.Eh bien, vous avez un ID et une Version, mais c'est tout - le reste est à vous. http://incubator.apache.org/couchdb/

Mais par les sons de celui-ci (N)hibernate suite serait la meilleure, mais je peux me tromper.

Vous pouvez utiliser un objet de base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top