求教一个关于一对多多对一的基本问题

可能是理解力不够,不会举一反三,求指点。

比如有一个产品的模型,每个产品会有很多附件,这时候它们就是一对多的关系

class Product < ActiveRecord::Base

has_many :accessories,

...



class Accessory < ActiveRecord::Base

belongs_to :product,

...



是这样吧?

那么在数据库里它们是怎么储存的呢?是不是这样:

products表里面有一些字段,name,description,accessory_id等等

name、description是string类型,那么accessory_id是什么类型的呢?integer?

能不能举个具体例子,比如产品5,有三个附件,id分别是7,8,9,那么数据库中应该是什么样子呢?



再比如,有“相关产品”,那么跟同一个表中其它项目的关联,这个算是几对几的关联呢……

产品3跟产品5,7,9,11是相关产品,那么数据库中这个字段应该怎样保存呢……

------------------

可能问题幼稚了点,还望不吝赐教……

products里面用id integer做主键,accessories表里面有一个product_id integer作为外键关联它对应的product,如果有多条accessory记录中product_id的值相同,则说明它们属于一个product。同时,这样的命名方式ror可以自动的辨认对应关系。
下面是一个例子
[code="sql"]
/*==============================================================*/
/* 文章表 /
/
==============================================================*/
create table articles
(
id integer not null auto_increment,
title varchar(255),
body text,
category varchar(255),
tags varchar(255),
user_id integer,
create_time datetime,
update_time datetime,
primary key (id)
);

/*==============================================================*/
/* 文章附件表 /
/
==============================================================*/
create table attachments
(
id integer not null auto_increment,
path_name varchar(255),
descn varchar(255),
article_id integer,
primary key (id)
);
[/code]