Mysql One-To Many Relation Sorusu
-
o zaman soyle yap
WHERE c.cat_id = '2' OR c.cat_id = '3'
-
sniperscope bunu yazdı
o zaman soyle yap
WHERE c.cat_id = '2' OR c.cat_id = '3'
hocam senin önerdiğin yapı şu şekilde değilmi:
post tablosu : id, title, content, category_id
category tablosu: category_id, category_name
post girerken category_id alanına kategori tablosunda ki id yi giricez, çekerkende ordan bakıp çekicez.bu şekilde nasıl birden fazla kategori giricem? yoksa benmi yanlış anladım seni?
-
evet hocam aynen, dedigin gibi.
posts tablosundaki categori_id yi unique yapmazsan istedigin kadar post girebilirsin.
Gecenlerde bir musterim icin yaptigim link tablosu ornegi var asagida.
Kategori master tablosu:
CREATE TABLE link_category (
category_id int(2) unsigned NOT NULL AUTO_INCREMENT,
category_name varchar(60) NOT NULL,
PRIMARY KEY (category_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;one to many iliskisi
link tablosu :
CREATE TABLE link_link (
sniperscope tarafından 26/Eki/12 11:35 tarihinde düzenlenmiştir
link_id int(4) unsigned NOT NULL AUTO_INCREMENT,
category_id int(2) NOT NULL,
shop_name varchar(60) DEFAULT NULL,
shop_url varchar(150) DEFAULT NULL,
banner_file varchar(20) DEFAULT NULL,
banner_code text,
PRIMARY KEY (link_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; -
sniperscope bunu yazdı
evet hocam aynen, dedigin gibi.
posts tablosundaki categori_id yi unique yapmazsan istedigin kadar post girebilirsin.
Gecenlerde bir musterim icin yaptigim link tablosu ornegi var asagida.
Kategori master tablosu:
CREATE TABLE link_category (
category_id int(2) unsigned NOT NULL AUTO_INCREMENT,
category_name varchar(60) NOT NULL,
PRIMARY KEY (category_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;one to many iliskisi
link tablosu :
CREATE TABLE link_link (
link_id int(4) unsigned NOT NULL AUTO_INCREMENT,
category_id int(2) NOT NULL,
shop_name varchar(60) DEFAULT NULL,
shop_url varchar(150) DEFAULT NULL,
banner_file varchar(20) DEFAULT NULL,
banner_code text,
PRIMARY KEY (link_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;hocam bir postun birden fazla kategorisi olamıyo senin yapında, one to many değil bu bildiğin one to one relation, bende deli bişey arıyorum
-
Navicat kullan query builder diye bişeyi var hiç sql bilmeden veri tabanı kullanırsın :D
-
bi ayılayım hallolmadıysa bakıcam
-
ara tablo olmadan şöyle yaparsın,
bi categoryIds kolonu oluştur.
mesela hedele diye yazın olsun hem 1 id li hemde 2 id li kategoriye koyacaksın.
bitwise operation ile yapabilirsin (http://en.wikipedia.org/wiki/Bitwise_operation)
