2010-11-15 12 views
0

J'ai une application Web qui permet aux utilisateurs de créer des groupes. Sur la première page de l'application, n'importe quel utilisateur peut - sans s'enregistrer - créer un groupe et ajouter d'autres utilisateurs au groupe en entrant des noms dans une liste d'entrées de texte. L'utilisateur qui a créé le groupe est alors censé être en mesure d'inviter les personnes sur la liste en ajoutant un email à chacun des noms. La raison pour laquelle je souhaite que l'utilisateur fournisse uniquement des noms au départ et des ivitations par e-mail plus tard est que je souhaite que l'utilisateur puisse essayer l'application et ses fonctionnalités avant de s'enregistrer. J'ai donc deux modèles Group et User avec une relation plusieurs-à-plusieurs. Le modèle utilisateur nécessite une adresse e-mail unique, donc je ne peux évidemment pas créer de nouveaux objets utilisateur pour chaque utilisateur du groupe. Alors comment s'assurer que les utilisateurs temporaires ajoutés aux groupes seront mappés aux utilisateurs créés via l'invitation ou si la personne invitée a déjà un utilisateur dans l'application?Modélisation des données du groupe et des utilisateurs

Je pensais à créer un modèle Profile qui aurait un nom et appartenir à un groupe et un utilisateur mais de cette façon chaque utilisateur aurait un profil pour chacun des groupes auxquels il appartient. Je ne peux pas penser à une autre alternative, mais il doit y avoir une ...

Répondre

0

Vous avez besoin d'outils pour jeter dat informations de votre cerveau à un modèle de base de données :)

http://wb.mysql.com/ ou http://www.sequelpro.com/

Ensuite, vous devez pour résumer cela dans votre application.

http://datamapper.org/

Après l'installation tous les DataMapper gemmes

gem install dm-core dm-do-adaptateur dm-migrations dm-sqlite adaptateur dm-horodatages do_sqlite3

Et enfin, vous pouvez commencer à jouer . Dans votre application Sinatra.

require 'rubygems' 
require 'dm-core' # http://datamapper.org/getting-started 

configure :development do 

    DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/hohohodb.db") 

end 

#... 

class User 

    include DataMapper::Resource 

    property :id,   Serial # http://datamapper.org/docs/properties 
    property :username, String 
    property :email,  String 
    property :created_at, DateTime 
    property :updated_at, DateTime 

    validates_uniqueness_of, :email # http://datamapper.org/docs/validations 
    has n, :groups 

end 
# Create or Upgrade all tables at once 
DataMapper.auto_upgrade! 

get '/' 
    erb :index 
end 

__END__ 

@@index 
... 

Espérons que cela peut être un bon point de départ # http://datamapper.org/docs/

have fun

+0

C'est bien sûr un bon point de départ :) Je suppose que je aurais dû mentionner Je l'aide nécessaire à la modélisation. Mon cerveau à la capacité de conversion de base de données est assez bien, mais mon cerveau ne peut pas comprendre comment mettre les utilisateurs dans des groupes - d'abord en utilisant un nom - puis les invitant par courriel - et faire correspondre tous les utilisateurs existants ou invités deux groupes différents en même temps aux bons groupes. Est-ce que ça fait du sens? – schwift

+0

:) ok donc vous devez commencer quelque part et modéliser étape par étape votre schéma. Découvrez cet exemple http://stensi.com/datamapper/pages/schema.html c'est SQL brut. s'amuser – include

Questions connexes