テーブルを3つ作成する必要があります。
あなたのクエリは次のようになり
create table countries(
id int unsigned auto_increment primary key,
name varachar(100) not null,
unique key (name)
);
create table divisions(
id int unsigned auto_increment primary key,
country_id int unsigned not null,
name varchar(100) not null,
unique key uk_name (name),
foreign key fk_countries (country_id)
references countries(id)
on update restrict
on delete cascade
);
create table teams(
id int unsigned auto_increment primary key,
division_id int unsigned not null,
name varchar(100) not null,
unique key uk_name (name),
foreign key fk_divisions (division_id)
references divisions(id)
on update restrict
on delete cascade
);
ような何か...
は、すべての国を表示:
select id, name from countries;
ユーザーはあなたがその国のIDを知っているし、あなたからのすべての部門を表示することができ、国を選択した後その国:
select id, name from divisions where county_id = ?;
ユーザーが部門を選択すると、IDを取得します。 nそのチームのすべてのチームを表示します。
select id, name from teams where division_id = ?;
1つの列に配列を格納することは悪いアドバイスです。 –