- 浏览: 354404 次
最新评论
-
springdata_springmvc:
bootstrap demo实例教程源代码下载:http:// ...
牛标联盟开发日记之前端 -
xiangxm:
谢谢分享
android中获取文字的宽度 -
showwei2004:
短短的一段文字,给人很多帮助。
android中获取文字的宽度 -
xiangguiwang:
谢谢
CentOS上通过源码安装ruby(1.8.6) -
G_o_o:
顶,写的好
CentOS上通过源码安装ruby(1.8.6)
在做注册用户管理时,常见做法是,一个User对象包括了用户的所有属性,比如:用户登陆名、密码、爱好、特长、邮箱、性别、年龄、地址、电话等等信息。
结果就是这个表的字段非常多:
另外一种做法是分成User和Profile两个对象,用户注册的时候只需填写简单的用户名和密码(邮箱)信息就可以完成注册,Profile信息则注册完成后,用户根据需要来填写,非强制性的,这样用户也乐意注册。同时User信息来了也方便和其它系统集成,比如要加入论坛等功能时。参考lovd-by-less的做法:
表结构是这样的,同时增加User Profile两个模型,在注册的时候,注册完保存用户基本信息的同时创建Profile信息,使User和Profile关联起来,这样就知道profile属于那个用户了。
以后,比如用户的博客、朋友、消息、相册都与Profile关联,不直接与User关联。
同上,楼主似乎说不到点上
其实吧,我也是分析lovd-by-less得出做法,感觉这种做法很不错,就推荐在这里。
同上,楼主似乎说不到点上
结果就是这个表的字段非常多:
create_table "users", :force => true do |t| t.string "login" t.string "crypted_password", :limit => 40 t.string "salt", :limit => 40 t.string "remember_token" t.datetime "remember_token_expires_at" t.boolean "is_admin" t.boolean "can_send_messages", :default => true t.string "time_zone", :default => "UTC" t.string "email_verification" t.boolean "email_verified" t.string "first_name" t.string "last_name" t.string "website" t.string "blog" t.string "flickr" t.text "about_me" t.string "aim_name" t.string "gtalk_name" t.string "ichat_name" t.string "icon" t.string "location" t.string "email" t.boolean "is_active", :default => false t.string "youtube_username" t.string "flickr_username" t.datetime "created_at" t.datetime "updated_at" end
另外一种做法是分成User和Profile两个对象,用户注册的时候只需填写简单的用户名和密码(邮箱)信息就可以完成注册,Profile信息则注册完成后,用户根据需要来填写,非强制性的,这样用户也乐意注册。同时User信息来了也方便和其它系统集成,比如要加入论坛等功能时。参考lovd-by-less的做法:
create_table "profiles", :force => true do |t| t.integer "user_id" t.string "first_name" t.string "last_name" t.string "website" t.string "blog" t.string "flickr" t.text "about_me" t.string "aim_name" t.string "gtalk_name" t.string "ichat_name" t.string "icon" t.string "location" t.string "email" t.boolean "is_active", :default => false t.string "youtube_username" t.string "flickr_username" t.datetime "created_at" t.datetime "updated_at" end add_index "profiles", ["user_id"], :name => "index_profiles_on_user_id" create_table "users", :force => true do |t| t.string "login" t.string "crypted_password", :limit => 40 t.string "salt", :limit => 40 t.string "remember_token" t.datetime "remember_token_expires_at" t.boolean "is_admin" t.boolean "can_send_messages", :default => true t.string "time_zone", :default => "UTC" t.string "email_verification" t.boolean "email_verified" t.datetime "created_at" t.datetime "updated_at" end add_index "users", ["login"], :name => "index_users_on_login"
表结构是这样的,同时增加User Profile两个模型,在注册的时候,注册完保存用户基本信息的同时创建Profile信息,使User和Profile关联起来,这样就知道profile属于那个用户了。
class Profile < ActiveRecord::Base belongs_to :user end
class User < ActiveRecord::Base has_one :profile, :dependent => :nullify #删除user时,将profile的user_id设置为null attr_accessor :email def before_create p = Profile.find_by_email @email end def after_create p = Profile.find_or_create_by_email @email raise 'User found when should be nil' unless p.user.blank? p.is_active=true #默认是否激活 p.user_id = id #用户的id p.save end end
以后,比如用户的博客、朋友、消息、相册都与Profile关联,不直接与User关联。
评论
7 楼
木剑先生
2009-09-12
你注册的时候一定要把User的所有属性显示出来要用户填写么?可以只写一部分么,没必要这么麻烦做one to one association,其他个人信息可以在作个人资料的修改时候填写
6 楼
qianjigui
2009-07-20
<div class="quote_title">qichunren 写道</div>
<div class="quote_div">感觉 标题是讲web用户体验,而 内容是讲技术实现。<br><br>对于 如何合理的实现用户注册信息收集?<br>我自己从来不想让用户的注册过程变得麻烦,我不会让他要填写一大堆的个人信息 才能完成注册,注册信息越简单越好,等他注册好了,可以通过可以手段来让用户去填充 个人资料信息。 关于这个,好像以前在讨论过。</div>
<p>确实有一点遗憾,不过看看构造思路还是很不错的。</p>
<p> </p>
<p>另外关于系统相关操作信息的统计,我觉得是个非常好的讨论话题,也是很多研究人员长期从事的。</p>
<p>google没放弃任何一个细节,才让今天的使用非常人性化。</p>
<p>我也在考虑后续的系统开发中多注意收集数据,在《rails recipes》里面有关于catch 404的相关讨论,这个思路可以借鉴和传承。如果在使用Catch 404的时候,会发现系统升级后的一些问题。例如当时在看到javaeye的路由配置信息时候,发现他们在做REST迁移时候对于以前url路径的保存,很大的一方面是为了和google缓存提供服务。</p>
<div class="quote_div">感觉 标题是讲web用户体验,而 内容是讲技术实现。<br><br>对于 如何合理的实现用户注册信息收集?<br>我自己从来不想让用户的注册过程变得麻烦,我不会让他要填写一大堆的个人信息 才能完成注册,注册信息越简单越好,等他注册好了,可以通过可以手段来让用户去填充 个人资料信息。 关于这个,好像以前在讨论过。</div>
<p>确实有一点遗憾,不过看看构造思路还是很不错的。</p>
<p> </p>
<p>另外关于系统相关操作信息的统计,我觉得是个非常好的讨论话题,也是很多研究人员长期从事的。</p>
<p>google没放弃任何一个细节,才让今天的使用非常人性化。</p>
<p>我也在考虑后续的系统开发中多注意收集数据,在《rails recipes》里面有关于catch 404的相关讨论,这个思路可以借鉴和传承。如果在使用Catch 404的时候,会发现系统升级后的一些问题。例如当时在看到javaeye的路由配置信息时候,发现他们在做REST迁移时候对于以前url路径的保存,很大的一方面是为了和google缓存提供服务。</p>
5 楼
pure
2009-07-16
mccxj 写道
下一站,火星 写道
把经常用到的用户字段放到一个表里面,反之放到一个表里面
同上,楼主似乎说不到点上
其实吧,我也是分析lovd-by-less得出做法,感觉这种做法很不错,就推荐在这里。
4 楼
mccxj
2009-07-16
下一站,火星 写道
把经常用到的用户字段放到一个表里面,反之放到一个表里面
同上,楼主似乎说不到点上
3 楼
下一站,火星
2009-07-16
把经常用到的用户字段放到一个表里面,反之放到一个表里面
2 楼
qichunren
2009-07-16
感觉 标题是讲web用户体验,而 内容是讲技术实现。
对于 如何合理的实现用户注册信息收集?
我自己从来不想让用户的注册过程变得麻烦,我不会让他要填写一大堆的个人信息 才能完成注册,注册信息越简单越好,等他注册好了,可以通过可以手段来让用户去填充 个人资料信息。 关于这个,好像以前在讨论过。
对于 如何合理的实现用户注册信息收集?
我自己从来不想让用户的注册过程变得麻烦,我不会让他要填写一大堆的个人信息 才能完成注册,注册信息越简单越好,等他注册好了,可以通过可以手段来让用户去填充 个人资料信息。 关于这个,好像以前在讨论过。
1 楼
jinleileiking
2009-07-15
嗯。不错,回来试试。
发表评论
-
牛标联盟开发日记之前端
2014-01-13 09:40 2424在开发牛标联盟(www.niusb.com) 的 ... -
Git提交时忘记提交新增加的文件的处理
2011-03-01 10:18 6143Git提交时忘记提交新增加的文件的处理 在commit的时候 ... -
Android UI日志
2010-08-01 14:30 1430为了以后的参考,记录下: 1、自定义样式(style) 在v ... -
转:awk学习
2010-07-16 11:09 1581其它参考:http://man.lupawor ... -
java中任意M~N范围随机数
2010-03-08 19:19 2101(M+(N-M)*Math.random()) 若需整型,则 ... -
mysql中long时间的转换
2010-01-06 14:39 9429在开放中,有时候为方便将日期时间以long类型(秒钟)存在数据 ... -
java 版本的某个时间前(发表于XX前)功能
2009-09-25 13:49 1808有很多版本的,先上过ruby版本。 def distan ... -
CentOS上通过源码安装ruby(1.8.6)
2009-08-25 17:34 4815首先下载ruby wget ftp://ftp.ruby- ... -
用ibator eclipse 插件自动生成sqlmap
2009-08-06 19:54 5006在新项目中用到了ibatis,如果手写sqlmap和model ... -
perf4j使用
2009-07-30 16:41 2825在做数据迁移的时候,性能显得格外重要,这个时候perf4j就是 ... -
Scala创始人:比Java更高级的语言
2009-07-30 11:06 2141近日,Scala语言的创始人Martin Odersky接受了 ... -
推荐一下powercmd小工具
2009-07-25 17:58 9113使用powercmd已经有很久了,给我工作带来了极大的便利,我 ... -
Play!框架扩展模板功能
2009-07-17 09:49 1933Play!框架扩展模板功能,这个是官方文档中的一个例子,引用一 ... -
使用Google 相册API
2009-07-16 16:50 3915在做GAE应用时,想上传图片在blog中使用,当然可以直接上传 ... -
Resource Controller插件使用
2009-07-15 11:25 1232rails生成的控制器中,大部分的action代码都非常相似, ... -
再次回归Rails
2009-07-14 19:20 1919学习Rails是在2007年的时候吧,期间做了一个项目:爱美发 ... -
体验了一下 playframework
2008-12-10 14:24 1799playframework框架和rails很像.http:// ... -
netbeans IDE 计划今日发布6.0正式版?
2007-12-03 11:07 1538netbeans IDE 计划今日发布6.0正式版咋还不见动静 ... -
ext应用载图,PP几张~
2007-04-18 20:59 17394用到ext和部门功能,对grid还是不敢使用,怕系统满足 ... -
JBoss Seam 1.1 GA 新特性预览(转)
2007-01-19 13:59 5145GOOD!! 1、Seam1.1提供了一个类似于RoR Gen ...
相关推荐
### JSP与MySQL实现用户注册的关键知识点 #### 一、JSP基础知识介绍 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,它允许开发者将动态内容嵌入到静态HTML页面中。JSP文件可以包含HTML、XML、...
在本项目中,我们关注的是一个使用C#编写的简单的Web用户注册系统。这个系统可能并不完善,但作为初学者或快速原型开发的起点,它提供了理解基础概念的机会。让我们深入探讨C# Web用户注册涉及的关键知识点。 1. **...
在本文中,我们将深入探讨...通过合理的设计和实现,我们可以构建出安全、高效、易维护的登录注册系统。在实际项目中,还需要结合具体的编程语言(如Java、C#等)和框架(如Spring MVC、ASP.NET MVC等)进行具体实现。
在设计一个用户注册页面时,我们关注的焦点是创建一个友好、直观且安全的用户体验,同时确保收集到必要的用户信息。在这个场景中,用户需要填写的注册内容包括姓名、性别、出生年月以及兴趣爱好。当用户成功提交注册...
通过合理的数据绑定和交互设计,不仅可以收集到用户必要的信息,也能提升用户的注册体验。对于开发者来说,理解和掌握这部分代码有助于提升在Web开发领域的技能,特别是在政府服务信息化或企业级应用开发中。
在本文中,我们将深入探讨如何使用Python的Flask框架实现用户登录注册、密码邮箱修改以及头像修改上传等常见的Web应用程序功能。Flask是一个轻量级的Web服务器网关接口(WSGI)Web应用框架,它允许开发者用Python...
HTML表单是网页设计中的重要组成部分,主要用于收集用户输入的数据,如在用户注册场景中,表单用于获取用户的个人信息、账号信息等。本教程将详细讲解如何使用HTML创建用户注册表单,并结合CSS来美化表单的外观。 ...
本项目的目的是通过Web MVC(Model-View-Controller)系统架构来实现用户注册的功能。Web MVC是一种流行的软件设计模式,它将应用程序逻辑分为模型、视图和控制器三个部分,这种分离有助于提高代码的可维护性和可...
这里的项目“用户注册及验证代码(连接数据库)”着重于实现这个功能,并且与数据库进行交互。下面我们将深入探讨这个系统的核心知识点。 首先,**用户注册**过程涉及收集用户的基本信息,如用户名、电子邮件、密码...
"register.html"和"login.html"是用户界面文件,分别对应用户注册和登录的前端页面。这些HTML文件通常会包含表单元素,如输入框、按钮等,用于收集用户输入的注册信息(如用户名、密码、邮箱等)和登录凭证(如...
用户注册是系统的基础功能之一,它涉及用户信息的收集与验证。通常,注册过程包括填写用户名、密码、电子邮件等基本信息,并可能需要通过电子邮件或短信验证来确认用户的真实性。注册后的用户可以创建自己的账户,...
本教程将详细介绍如何使用Java Servlet实现用户管理系统的各项功能,包括用户增删查改、分页、登录和注册。 一、用户增删查改 1. 增加用户:首先,创建一个User类,包含用户名、密码等属性。然后,在Servlet中创建...
在本项目中,“购物车和用户注册.rar”包含两个核心功能:购物车管理和用户注册。这两个功能是电子商务网站中至关重要的部分,对于提供流畅、安全的用户体验至关重要。 首先,我们来详细探讨购物车功能。购物车页面...
这个基于Java的用户注册管理系统实训报告详尽阐述了系统的设计与实现过程,从需求分析到功能设计,再到数据库和界面的实现,为读者提供了一个完整的开发案例,有助于理解如何利用Java技术构建实际的管理信息系统。...
jQuery作为一种强大的JavaScript库,能够简化网页动态交互和DOM操作,是实现分步骤用户注册表单的理想工具。本文将深入探讨如何利用jQuery实现这种功能,以及相关文件结构的作用。 首先,我们来看"jQuery分步骤用户...
车辆信息采集管理系统是一个基于人工智能技术的信息管理系统项目,旨在利用现代技术手段实现对车辆信息的高效、精准管理和分析。系统分析与设计在这个项目中扮演着关键角色,它涉及到系统的功能规划、架构搭建以及...
综上所述,这个基于Android的简单用户注册系统,通过合理的界面设计和编程实现,满足了用户的基本需求,同时也为开发者提供了学习和实践Android应用开发的机会。在实际开发中,还需要考虑更多因素,如数据加密、用户...
在Web开发中,用户注册是实现用户身份验证的基础。通过用户注册,系统可以收集用户的个人信息(如用户名、密码等),并存储这些信息供后续登录验证使用。 #### 三、ASP.NET用户注册页面分析 给定的部分内容展示了一...
在多种情况下,用户注册验证可能有不同的实现方式和策略,以下将详细讨论相关知识点。 1. **邮箱验证**:许多网站在用户注册时会要求提供有效的电子邮箱地址,并发送一封包含验证码的邮件。用户需要在规定时间内...
在本JavaWeb项目中,"用户注册+登录"功能是基于MyBatis框架实现的,这是一个轻量级的持久层框架,它允许开发者将SQL语句直接映射到Java代码中,大大简化了数据访问层的开发工作。下面将详细阐述这个项目中涉及的技术...