At 14:56 19.02.2003, Jono Bacon spoke out and said:
--------------------[snip]--------------------
>The code that you posed is the technique I have used at the moment. This
>technique works fine, but like my mate said, this limits me to a single
>parent for a comment/message. I admit that is unlikely that I would need
>more than one parent, but what would happen if I changed the parent -
>would this model still work fine?
--------------------[snip]--------------------
As long as you have one-to-many relationship this model will be fine. You
can easily change the "parent" of a message by replacing the "id_topic"
column with another (hopefully valid) topic id.
If you have many-to-many you need an intermediate table to resolve:
+-----+ +----------+ +-------+
|TOPIC| |MSG2TOPIC | |MESSAGE|
+-----+ +----------+ +-------+
| id | <- |id_topic | | id |
| ... | |id_message| -> | ... |
+-----+ +----------+ +-------+
To select all messages for a certain topic you would
select * from MESSAGE
where id in (select id_message from MSG2TOPIC where id_topic =
$id_topic);
or, using a join
select m.* from MSG2TOPIC rel inner join MESSAGE m on m.id = rel.id_message
where rel.id_topic = $id_topic;
To select all topics for a particular message:
select * from TOPIC
where id in (select id_topic from MSG2TOPIC where id_message =
$id_message);
--
>O Ernest E. Vogelsinger
(\) ICQ #13394035
^ http://www.vogelsinger.at/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php