OK, I guess, now I understand what you meant. You're going to create tree structure for your forum, and you're going to create "sub-sub-forum", aren't you? And as I understood, you were trying to use the same table for the all sub forums, weren't you? I guess it's impossible, and my suggestion is to create separate tables for every "layer" of your forum tree (main forum (table1) -> sub-forum layer 1 (table2) -> sub-forum layer 2 (table2) and so on).
If somebody knows any other ways for this purpose, it would be good to see. Thanks. /Regards, Alexander On Tue, Jul 7, 2009 at 8:27 PM, Alexander Dergachev <[email protected]>wrote: > I'm not quite sure I understood you right. Where are you going to use it? > > relation()-> > [{many_to_one, [forum]},{one_to_many, [forum]}]. > > Where do you need to use it? > > > May be it would be more easy to help you if you show some code > examples you're going to use in your application. > > On 7/7/09, Hao Chi Kiang <[email protected]> wrote: > > > > 2009/7/7 Alexander Dergachev <[email protected]> > >> > >> Hi. If I got it right, then I don't see any problem :) > >> > >> As I understood the concept of subforums, any forum can have some > >> number of subforums, but is it really case one subforum may be placed > >> in more them one forum? Do we really need many-to-many relation? > >> > >> On 7/7/09, Takayoshi Kyou <[email protected]> wrote: > >> > > >> > Hi all, > >> > > >> > I am trying to make a forum application that every forum can have > >> > their > >> > child-forums. But I found it hard to represent these with erlydb. > >> > > >> > First I tried to use a self-referencing many-to-many relation: > >> > > >> > new (A) -> > >> > Post_data = yaws_api:parse_post(A), > >> > {value, {parent_forum_id, Parent_forum_id_str}, Other_fields} = > >> > lists:keytake(parent_forum_id, 1, > >> > %% convert every keys from string to atom > >> > [ {list_to_atom(K), V} || {K, V} <- Post_data ]), > >> > New_forum = forum:save(forum:new_with(Other_fields)), > >> > Parent_forum_id = list_to_integer(Parent_forum_id_str), > >> > %% A negative parent ID means it is an orphan. > >> > if Parent_forum_id > 0 -> > >> > forum:add_forum( forum:find_id(Parent_forum_id), New_forum > ); > >> > true -> > >> > ok > >> > end, > >> > {ewr, forum, index}. > >> > > >> > > >> > But this isn't work because the relation between parent and child is > >> > "two-way" > >> > that I can't detect who is the parent and who are the childern when I > >> > use > >> > forum:forums to access it. > >> > > >> > Any idea? > >> > > >> > > >> > Thanks > >> > > > >> > > >> > >> > >> -- > >> With Best Regards, > >> Alexander Dergachev > >> > >> > > > > > Oh. Maybe I'm going the wrong way... > > Yes, this is only a one-to-many relations that one forum can have many > > sub-forums. Is it means I should define a "self-referencing one-to-many > > relation"? > > > > But maybe why I think of many-to-many first is that I felt unnatural to > > write a > > self-referencing one-to-many relation. > > > > If table1 have a one-to-many relation to table2, I would say: > > > > -module(table1). > > relations () -> {one_to_many, [table2]}. > > > > -module(table2). > > relations () -> {many_to_one, [table1]}. > > > > But it's strange to say: > > relations () -> [{one_to_many, [forum]}, {many_to_one, [forum]}]. > > > > Or maybe I should just use a extra column called parent_forum_id? If I do > > so, > > will it going to be inconvenient to access them (because erlydb won't > make > > access functions automatically)? > > > > > > Thanks. > > > > > > > > > > > -- > With Best Regards, > Alexander Dergachev > -- With Best Regards, Alexander Dergachev --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "erlyweb" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/erlyweb?hl=en -~----------~----~----~----~------~----~------~--~---
