17 Eylül 2014 Çarşamba

ER Diyagram Örneği


        Aşağıda önceden tasarladığımız online kitap satış sitesi için sağlanması gereken durumlar , bunlara göre hazırlanmış ER diyagramı ve sql komutları bulunmaktadır. Bunu paylaşmamın sebebi yeni öğrenen arkadaşlara basit bir örnek olmasıdır.

Sitede Sağlanması Gereken Durumlar

1.Sitedeki her kitabın bir ISBN , adı , yazarı , yayınevi , yayın tarihi , fiyatı , stok miktarı , tür , açıklama ve  satış adeti vardır. Her kitap bir yazar tarafından yazılır ve bir yayınevi tarafından yayınlanır. Ayrıca bir kitap birden fazla kategoriye dahil olabilir.(Bir kitabın yazılmasında birden fazla yazar yer alabilir , bu yazar bilgileri tek bir sütunda saklanacaktır.)

2.Sitede birden çok kategori mevcuttur. Her bir kategorinin kategori no , tür , açıklama gibi bilgileri olmalıdır.

3.Sitedeki her bir yazarın yazar no , Adı , Soyadı  ve varsa web adresi bulunmalıdır.

4.Sitedeki her bir yayınevinin no , adı , tel , e-posta , adres ve varsa web adresi bulunmalıdır.

5.Sitenin üyelerinin adı , soyadı , adresi , tel  ve e-posta bilgileri bulunmalıdır.

6.Sitede üyelere özel kampanyalar mevcuttur ve her kampanyanın no , ad , bilgi , başlangıç ve bitiş süreleri mevcuttur. Bir üye birden fazla kampanyadan yararlanabilir.

7.Sitede mevcut olan kitapların stok durumları belirlenmelidir. Stoktaki kitap  ve stok adeti bulunmalıdır.

8.Sitede her müşteriye ve üye ait sipariş sepeti vardır. Sipariş sepetine müşteri veya üye kitap ekleyebilir. Bu bilgilerinde saklanması gereklidir.

9.Siteye üye olmadan alışveriş yapan müşterilerin de ad, soyad , adres , tel , e-posta bilgileri saklanmalıdır.

10.Müşteri veya üye kitap satın aldığında fatura kesilir ve kargo takip fişi(kodu) verilir. Sitede yapılan sipariş bilgileri de saklanmalıdır.



Create Cümleleri


Yazarlar

CREATE TABLE Yazarlar (
yid int,
ad varchar(100) NOT NULL,
soyad varchar(100),
website varchar(30),
CONSTRAINT Pk_Yazarlar PRIMARY KEY(yid));

Yayınevleri

CREATE TABLE Yayinevleri(
yno int ,
ad varchar(30) NOT NULL,
adres varchar(100),
website varchar(30),
tel varchar(30),
CONSTRAINT Pk_Yayinevleri PRIMARY KEY(yno));

Kategoriler

CREATE TABLE Kategoriler(
kid int,
ad varchar(30) NOT NULL,
bilgi varchar(100),
CONSTRAINT PK_Kategoriler PRIMARY KEY(kid));

Stok

CREATE TABLE Stok(
sid int,
adet int,
CONSTRAINT Pk_Stok PRIMARY KEY(sid));

Üyeler

CREATE TABLE Uyeler(
uid int,
ad varchar(30) NOT NULL,
soyad varchar(30) NOT NULL,
sehir varchar(30),
ilce varchar(30),
mahalle varchar(30),
pkodu int,
CONSTRAINT PK_Uyeler PRIMARY KEY(uid));

Müşteriler

CREATE TABLE Musteriler(
mid int,
ad varchar(30) NOT NULL,
soyad varchar(30) NOT NULL,
sehir varchar(30),
ilce varchar(30),
mahalle varchar(30),
pkodu int,
CONSTRAINT PK_Musteriler PRIMARY KEY(mid));

Kampanyalar

CREATE TABLE Kampanyalar(
kno int,
ad varchar(30) NOT NULL,
bilgi varchar(100) NOT NULL,
bastarih date,
bittarih date,
CONSTRAINT PK_Kampanyalar PRIMARY KEY(kno));

Kitaplar

CREATE TABLE Kitaplar(
ISBN varchar(17),
ad varchar(30) NOT NULL,
yazar varchar(30),
yayınevi varchar(30),
ytarihi date,
aciklama varchar(200),
fiyat int,
sid int,
yid int,
yno int,
CONSTRAINT PK_Kitaplar PRIMARY KEY(ISBN),
CONSTRAINT FK_Stok FOREIGN KEY(sid) REFERENCES Stok(sid),
CONSTRAINT FK_Yayinevleri FOREIGN KEY(yno) REFERENCES Yayinevleri(yno),
CONSTRAINT FK_Yazarlar FOREIGN KEY(yid) REFERENCES Yazarlar(yid));

Kampanya Bilgileri

CREATE TABLE Kampanya_bilgi(
uid int,
kno int,
CONSTRAINT FK_Uyeler FOREIGN KEY(uid) REFERENCES Uyeler(uid),
CONSTRAINT FK_Kampanyalar FOREIGN KEY(kno) REFERENCES Kampanyalar(kno));

Kategori Bilgi

CREATE TABLE Kategori_bilgi(
ISBN varchar(17),
kid int,
CONSTRAINT Fk_Kitaplar FOREIGN KEY(ISBN) REFERENCES Kitaplar(ISBN),
CONSTRAINT Fk_Kategoriler FOREIGN KEY(kid) REFERENCES Kategoriler(kid));

Sipariş Bilgi

CREATE TABLE Siparis_bilgi(
spid int,
tarih date,
iletimtarih date,
id int,
tutar int,
takipno int,
ISBN varchar(17),
CONSTRAINT Pk_Siparis_bilgi PRIMARY KEY(spid),
CONSTRAINT Fk_Musteriler FOREIGN KEY(id) REFERENCES Musteriler(mid),
CONSTRAINT Fk_Uye FOREIGN KEY(id) REFERENCES Uyeler(uid),
CONSTRAINT Fk_Kitap FOREIGN KEY(ISBN) REFERENCES Kitaplar(ISBN));

Sepet Bilgi

CREATE TABLE Sepet_bilgi(
sepetid int,
id int,
ISBN varchar(17),
CONSTRAINT Pk_Sepet_bilgi PRIMARY KEY(sepetid),
CONSTRAINT Fk_kitaplarr FOREIGN KEY(ISBN) REFERENCES Kitaplar(ISBN),
CONSTRAINT Fk_Müsterilerr FOREIGN KEY(id) REFERENCES Musteriler(mid),

CONSTRAINT Fk_Uyelerr FOREIGN KEY(id) REFERENCES Uyeler(uid));

5 yorum:

  1. UML diyagramını nasıl oluşturabiliriz acaba yardımcı olabilirseniz sevinirim.

    YanıtlaSil
  2. faydalı bir yazı olmuş.teşekkürler

    YanıtlaSil
  3. abi birde sogulama örneği versen mesala Satın alınmak istenilen kitabın depoda bulunup bulunmadığının kontrol edilmesi.

    YanıtlaSil
  4. Mapping işlemi yapıldıktan sonraki sekili de paylaşabilir misiniz

    YanıtlaSil
  5. Arkadaşlar bu yazıyı 2014 te yazmışım , mapping ve örnek sorgu gibi talepler yerine kendiniz tabloları oluşturup bunları yapabilirsiniz

    YanıtlaSil