In the example, I mean the year of entering (starting year) College (instead of degree). (yeah, my english was not so good this time! :o) So, in the case u exposed, there is a performance Restriction/Requisite. (That would be a reason to change Identifying approach.)
Ice-Man 2008/12/15 Nathan Anderson <[email protected]> > Iceman, > > In a perfect wolrd there would never be a need to create an artificial > primary key. However once people start using the applications things > tend to get messier. > > Using your example, what happens when the student changes majors or > enters a post graduate degree and his ID changes to refelct the > deparetment change. If you have foreign key references on that logical > primary key you have a problem. Even if the business logic states the > ID should never change, people make mistakes so you still need to be > able to change that field. > > There can also be a matter of performace. There is no faster index > than an integer. So forcing your database to use a logical primary key > (or composite key) can hinder database performance depending on your > situation. > > Nathan > > > On 12/15/08, Ice-Man <[email protected]> wrote: > > I strongly DESAGREE u. Acording Data Modeling (entity-relation > modeling) > > there isn't any reason to create an ARTIFICAL IDENTIFIER ATTRIBUTE, if > there > > is a REAL data that can be used as the identifier. > > Otherwise u may designate a artifical identifier. Pupils from Colleges > > Applicants use to be an anagrama of letters and numbers (so that make up > > ID). I think u guess what I mean. > > > > Gupta, > > > > But, I think it's almost impossible to set Hibernate to generate such > ID > > in automatic fashion. It's better to generate that ID by your application > > and set Hibernate so that. I think that's the simplest way. > > Hope helping, > > > > Ice-Man > > > > 2008/12/15 Nathan Anderson <[email protected]> > > > >> Just like Oscar stated, it is generally considered a best practice to > have > >> database primary keys that have no business meaning attached to them. > The > >> example you provide appears as though it probably should be defined as a > >> unique not null column, but not primary key. But even if you change the > >> data structure that doesn't solve the problem of auto assigning the > "next" > >> value to a new record. > >> > >> The method I have used in the past for situations like this to have a > >> table > >> in the database that holds the "next" value. Then update the value > >> database > >> either in a transaction from your application, or in a stored procedure > >> used > >> to save a new record, or with a trigger on the insert statement. > >> > >> Hope that helps, > >> Nathan > >> > >> > >> > >> On Sun, Dec 14, 2008 at 8:51 PM, sudhakargupta < > >> [email protected]> wrote: > >> > >>> > >>> Thanks for your reply and i need an id likes the 05-CS-123 so, i need > an > >>> auto > >>> generated string to increment the last number, if the client want to > use > >>> the > >>> assigned then how to mention in model class to assign the @Id value. > >>> > >>> > >>> Sudhakar > >>> > >>> > >>> Oscar Alvarez-2 wrote: > >>> > > >>> > Hello, > >>> > > >>> > What's the diference between autogenerated Long key and autogenerated > >>> > String > >>> > key???, i mean, if the String is autogenerated, it's not better > >>> > solution > >>> a > >>> > Long key?, but if the String key is meaningful for the end user, then > >>> you > >>> > should define assigned strategy and assign it before save. > >>> > > >>> > Best Regards > >>> > > >>> > > >>> > > >>> > 2008/12/13 sudhakargupta <[email protected]> > >>> > > >>> >> > >>> >> Thanks for your reply > >>> >> > >>> >> Is there any other way to use the auto generator for the string in > >>> mysql > >>> >> or in any other database > >>> >> > >>> >> please suggest me for this solution.. > >>> >> > >>> >> Sudhakar.. > >>> >> > >>> >> > >>> >> > >>> >> mraible wrote: > >>> >> > > >>> >> > If you're going to use Strings for the primary key, you'll have to > >>> use > >>> >> > a type of generator that doesn't increment. I've never done this, > >>> >> > hopefully someone else on this list can help you. > >>> >> > > >>> >> > Matt > >>> >> > > >>> >> > On Fri, Dec 12, 2008 at 5:39 AM, sudhakargupta > >>> >> > <[email protected]> wrote: > >>> >> >> > >>> >> >> Hi Matt... > >>> >> >> > >>> >> >> > >>> >> >> Presently i'm working with the appfuse2 struts.. In one of my > >>> >> >> table > >>> i > >>> >> >> need > >>> >> >> to use the String as a primarykey and use foreignkey relations > with > >>> >> this > >>> >> >> primarykey. > >>> >> >> > >>> >> >> i created a model class primary key setters/getters are > >>> >> >> > >>> >> >> > >>> >> >> @Id > >>> >> >> private String code; > >>> >> >> > >>> >> >> private String getCode() { > >>> >> >> return this.code; > >>> >> >> } > >>> >> >> > >>> >> >> private void setCode(String code) { > >>> >> >> this.code = code; > >>> >> >> } > >>> >> >> > >>> >> >> and after that run the command like mvn appfuse:gen and creates > the > >>> >> all > >>> >> >> the > >>> >> >> action classes and the jsp files. after that run the command like > >>> mvn > >>> >> >> jetty:run, then it shows the errors to create the database and to > >>> run > >>> >> the > >>> >> >> project.. > >>> >> >> > >>> >> >> it shows the errors like primarykey field must be the Long > >>> datatype.. > >>> >> >> > >>> >> >> can u please suggest me to create the database through appfuse > .. > >>> >> >> > >>> >> >> > >>> >> >> Sudhakar > >>> >> >> > >>> >> >> > >>> >> >> > >>> >> >> > >>> >> >> -- > >>> >> >> View this message in context: > >>> >> >> > >>> >> > >>> > http://www.nabble.com/Appfuse2-Struts-problem-tp20974893s2369p20974893.html > >>> >> >> Sent from the AppFuse - User mailing list archive at Nabble.com. > >>> >> >> > >>> >> >> > >>> >> >> > >>> --------------------------------------------------------------------- > >>> >> >> To unsubscribe, e-mail: [email protected] > >>> >> >> For additional commands, e-mail: [email protected] > >>> >> >> > >>> >> >> > >>> >> > > >>> >> > > --------------------------------------------------------------------- > >>> >> > To unsubscribe, e-mail: [email protected] > >>> >> > For additional commands, e-mail: [email protected] > >>> >> > > >>> >> > > >>> >> > > >>> >> > >>> >> -- > >>> >> View this message in context: > >>> >> > >>> > http://www.nabble.com/Appfuse2-Struts-problem-tp20974893s2369p20988292.html > >>> >> Sent from the AppFuse - User mailing list archive at Nabble.com. > >>> >> > >>> >> > >>> >> > --------------------------------------------------------------------- > >>> >> To unsubscribe, e-mail: [email protected] > >>> >> For additional commands, e-mail: [email protected] > >>> >> > >>> >> > >>> > > >>> > > >>> > -- > >>> > Atentamente > >>> > Oscar Alvarez V > >>> > (09) 8416 4052 > >>> > > >>> > > >>> > >>> -- > >>> View this message in context: > >>> > http://www.nabble.com/Appfuse2-Struts-problem-tp20974893s2369p21008315.html > >>> Sent from the AppFuse - User mailing list archive at Nabble.com. > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: [email protected] > >>> For additional commands, e-mail: [email protected] > >>> > >>> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > -- Derlon Ao encaminhar esta mensagem (ou qualquer 1 q se destine a mim tb), não se esqueça de retirar o meu nome e o meu End. de E-Mail e coloque todos os End.s dos destinatários em Cópia Oculta - CcO (BCc). Ajude a combater o Spam!
