ON DELETE NO ACTION
6. Memeriksa Untuk Pertumbuhan di Masa Depan
4.2.3 Perancangan Database Fisikal
4.2.3.1 Merancang Relasi Dasar
Pemilik
Domain PemilikNumber varchar, length 10, diawali dengan ‘PE’ Domain Username varchar, length 50
Domain Password varchar, length 50 Domain Nama varchar, length 100 Domain E-mail varchar, length 100 Domain AlamatPemilik varchar, length 100
Domain StatusPemilik varchar, length 50, ‘Verifikasi’ atau ‘Belum Verifikasi’
Domain Posisi varchar, length 10, ‘Pemilik’ atau ‘Admin’ DomainTransaksi integer, 0 atau 1
Domain Joindate datetime ,yyyy-mm-dd H:M:S Domain Gambar varchar, length 100
Pemilik(
PemilikID PemilikNumber NOT NULL, Username Username NOT NULL, Password Password NOT NULL, NamaPemilik NamaPemilik NOT NULL, E-mail E-mail NOT NULL, AlamatPemilik AlamatPemilik NOT NULL,
StatusPemilik StatusPemilik NOT NULL DEFAULT ‘Belum Verifikasi’,
Posisi Posisi NOT NULL DEFAULT ‘Pemilik’, Transaksi Transaksi NOT NULL DEFAULT 0,
Joindate Joindate NOT NULL,
Gambar Gambar NOT NULL,
Primary Key(PemilikID));
Handphone
Domain HandphoneNumber varchar, length 10, diawali dengan ‘HP’ Domain NomorHandphone varchar, length 20,
Domain PemilikNumbervarchar, length 10, diawali dengan ‘PE’
Handphone(
HandphoneID HandphoneNumber NOT NULL, PemilikID PemilikNumber NOT NULL, NomorHandphone NomorHandphone NOT NULL
Foreign Key (PemilikID)references Pemilik(PemilikID) ON UPDATE
CASCADE ON DELETE CASCADE);
Telepon
Domain TeleponNumber varchar, length 10, diawali dengan ‘TEL’ Domain NomorTelepon varchar, length 20,
Domain PemilikNumbervarchar, length 10, diawali dengan ‘PE’
Telepon(
TeleponID HandphoneNumber NOT NULL, PemilikID PemilikNumber NOT NULL, NomorTelepon NomorTelepon NOT NULL
Primary Key (TeleponID),
Foreign Key (PemilikID)references Pemilik(PemilikID) ON UPDATE
CASCADE ON DELETE CASCADE));
Member
Domain MemberNumber varchar, length 10, diawali dengan ‘ME’ Domain Username varchar, length 50
Domain Password varchar, length 50 Domain NamaMember varchar, length 100 Domain E-mail varchar, length 100
Domain JenisMember varchar, length 10, ‘User’ atau ‘Admin’ Domain StatusMember varchar, length 10, ‘Banned’ atau ‘Unbanned’ Domain Gambar varchar, length 100
Domain Posisi varchar, length 10, ‘Member’,’Admin’,’Co-Admin’
Domain Joindate datetime, yyyy-mm-dd H:M:S
Member(
MemberID MemberNumber NOT NULL, Username Username NOT NULL, Password Password NOT NULL, NamaMember NamaMember NOT NULL, E-mail E-mail NOT NULL, JenisMember JenisMember NOT NULL,
StatusMember StatusMember NOT NULL DEFAULT ‘Unbanned’,
Gambar Gambar NOT NULL,
Posisi Posisi NOT NULL DEFAULT ‘Member’, Joindate Joindate NOT NULL,
KategoriUsaha
Domain KategoriNumber varchar, length 10, diawali dengan ‘KT’ Domain KategoriName varchar, length 20, ‘Hiburan’ atau ’Jasa’ atau
’Tempat Makan’atau’Toko’atau’Unknown’ Domain KategoriDate date, yyyy-mm-dd
KategoriUsaha(
KategoriID KategoriNumber NOT NULL,
KategoriName KategoriName NOT NULL DEFAULT ‘Unknown’,
KategoriDate KategoriDate NOT NULL,
Primary Key (KategoriID));
MapUsaha
Domain MapUsahaNumber varchar, length 10, diawali dengan ‘MU’ Domain MapUsahaLatitude number
Domain MapUsahaLongitude number
MapUsaha(
MapUsahaID MapUsahaNumber NOT NULL, Latitude MapUsahaLatitude NOT NULL, Longitude MapUsahaLongitude NOT NULL,
Primary Key (MapUsahaID));
Map
Domain MapNumber varchar, length 10, diawali dengan ‘MA’ Domain MapLatitude number
Domain MapLongitude number
Map(
MapID MapNumber NOT NULL, Latitude MapLatitude NOT NULL, Longitude MapLongitude NOT NULL,
Primary Key (MapID));
Forum
Domain ForumNumber varchar, length 10, diawali dengan ‘FR’ Domain ForumName varchar, length 20,
Domain ForumInputDate datetime, yyyy-mm-dd H:M:S Domain ForumDeskripsi text
Forum(
ForumID ForumNumber NOT NULL, ForumName ForumName NOT NULL, Inputdate ForumInputDate NOT NULL,
Deksripsi ForumDeskripsi NOT NULL,
Primary Key (ForumID));
ThreadForum
Domain ThreadNumber varchar, length 10, diawali dengan ‘TH’ Domain PemilikNumber varchar, length 10, diawali dengan ‘PE’ Domain MemberNumber varchar, length 10, diawali dengan ‘ME’ Domain ForumNumber varchar, length 10, diawali dengan ‘FO’ Domain NamaThread varchar, length 50
Domain TotalRating integer Domain TotalView integer Domain TotalKomentar integer Domain Deskripsi text
Domain LastUpdate date, ‘yyyy-mm-dd’
ThreadForum(
ThreadID ThreadNumber NOT NULL, PemilikID PemilikNumber NOT NULL, MemberID MemberNumber NOT NULL, ForumID ForumMember NOT NULL, NamaThread NamaThread NOT NULL,
Rating TotalRating NOT NULL DEFAULT 0,
View TotalView NOT NULL DEFAULT 0,
Komentar TotalKomentar NOT NULL DEFAULT 0, Deskripsi Deskripsi NOT NULL,
LastUpdate LastUpdate NOT NULL,
Primary Key (ThreadID),
Foreign Key (PemilikID) references Pemilik(PemilikID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (MemberID) references Member(MemberID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (ForumID) references Forum(ForumID) ON UPDATE
CASCADE ON DELETE NO ACTION);
Komentar
Domain KomentarNumber varchar, length 10, diawali dengan ‘KO’ Domain PemilikNumber varchar, length 10, diawali dengan ‘PE’ Domain MemberNumber varchar, length 10, diawali dengan ‘ME’ Domain ThreadNumber varchar, length 10, diawali dengan ‘TH’ Domain Komentar text
Domain KomentarDate datetime, yyyy-mm-dd H:M:S
Komentar(
KomentarID KomentarNumber NOT NULL, PemilikID PemilikNumber NOT NULL,
MemberID MemberNumber NOT NULL, ThreadID ThreadNumber NOT NULL, Komentar Komentar NOT NULL, KomentarDate KomentarDate NOT NULL,
Primary Key (KomentarID),
Foreign Key (PemilikID)references Pemilik(PemilikID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (MemberID)references Member(MemberID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (ThreadID)references ThreadForum(ThreadID) ON UPDATE
CASCADE ON DELETE NO ACTION);
Rating
Domain RatingNumber varchar, length 10, diawali dengan ‘RA’ Domain PemilikNumber varchar, length 10, diawali dengan ‘PE’ Domain MemberNumber varchar, length 10, diawali dengan ‘ME’ Domain ThreadNumber varchar, length 10, diawali dengan ‘TH’ Domain RatingDate datetime, yyyy-mm-dd H:M:S
Rating(
RatingID RatingNumber NOT NULL, MemberID MemberNumber NOT NULL, PemilikID PemilikNumber NOT NULL, ThreadID ThreadNumber NOT NULL, RatingDate RatingDate NOT NULL,
Primary Key (RatingID),
Foreign Key (PemilikID)references Pemilik(PemilikID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (MemberID)references Member(MemberID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (ThreadID)references ThreadForum(ThreadID) ON UPDATE
CASCADE ON DELETE NO ACTION);
TempatUsaha
Domain UsahaNumber varchar, length 10, diawali dengan ‘UH’ Domain MemberNumber varchar, length 10, diawali dengan ‘ME’ Domain MapUsahaNumber varchar, length 10, diawali dengan ‘MU’ Domain KategoriNumber varchar, length 10, diawali dengan ‘KT’ Domain NamaUsaha varchar, length 50
Domain AlamatUsaha varchar, length 100 Domain Deskripsi text
Domain Inputdate datetime, yyyy-mm-dd H:M:S Domain Muka varchar, length 100
TempatUsaha(
UsahaID UsahaNumber NOT NULL, MemberID MemberNumber NOT NULL, MapUsahaID MapUsahaNumber NOT NULL, KategoriID KategoriNumber NOT NULL, NamaUsaha NamaUsaha NOT NULL, Alamat AlamatUsaha NOT NULL, Deskripsi Deskripsi NOT NULL, Inputdate UsahaInputDate NOT NULL, Muka MukaUsaha NOT NULL,
Rating RatingUsaha NOT NULL DEFAULT 0
Primary Key (UsahaID),
Foreign Key (MemberID)references Member(MemberID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (MapUsahaID)references MapUsaha(MapUsahaID) ON UPDATE CASCADE ON DELETE NO ACTION,
Foreign Key (KategoriID)references KategoriUsaha(KategoriID) ON UPDATE CASCADE ON DELETE NO ACTION);
TempatKost
Domain KostNumber varchar, length 10, diawali dengan ‘KOS’ Domain PemilikNumber varchar, length 10, diawali dengan ‘PE’ Domain MapNumber varchar, length 10, diawali dengan ‘MA’ Domain NamaKost varchar, length 50
Domain AlamatKost varchar, length 100 Domain HargaSewa integer
Domain HargaBooking integer Domain JumlahKamar integer Domain KamarKosong integer Domain KamarBooked integer Domain Deskripsi text Domain JumlahRating integer
Domain InputDate datetime, yyyy-mm-dd H:M:S Domain DurasiSewa integer
Domain DurasiBooking integer
Domain MukaKost varchar, length 100
TempatKost(
KostID KostNumber NOT NULL, PemilikID PemilikNumber NOT NULL,
MapID MapNumber NOT NULL,
NamaKost NamaKost NOT NULL,
AlamatKost AlamatKost NOT NULL,
HargaSewa HargaSewa NOT NULL,
HargaBooking HargaBooking NOT NULL, JumlahKamar JumlahKamar NOT NULL,
KamarKosong KamarKosong NOT NULL, KamarBooking KamarBooked NOT NULL,
Deskripsi Deskripsi NOT NULL,
Rating JumlahRating NOT NULL DEFAULT 0, InputDate InputDate NOT NULL,
DurasiSewa DurasiSewa NOT NULL, DurasiBooking DurasiBooking NOT NULL,
Muka MukaKost NOT NULL,
Primary Key (KostID),
Foreign Key (PemilikID)references Pemilik(PemilikID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (MapID)references Map(MapID) ON UPDATE CASCADE ON
DELETE NO ACTION);
Fasilitas
Domain FasilitasNumber varchar, length 10, diawali dengan ‘FA’ Domain KostNumber varchar, length 10, diawali dengan ‘KOS’ Domain FasilitasName varchar, length 50
Fasilitas(
FasilitasID FasilitasNumber NOT NULL, KostID KostNumber NOT NULL, Fasilitas FasilitasName NOT NULL,
Primary Key (FasilitasID),
Foreign Key (KostID)references TempatKost(KostID) ON UPDATE
CASCADE ON DELETE NO ACTION);
Foto
Domain FotoNumber varchar, length 10, diawali dengan ‘KOS’ Domain KostNumber varchar, length 10, diawali dengan ‘FO’ Domain FotoName varchar, length 50
Domain FotoDate date, ‘yyyy-mm-dd’
Foto(
FotoID FotoNumber NOT NULL, KostID KostNumber NOT NULL, FotoName FotoName NOT NULL, FotoDate FotoDate NOT NULL,
Primary Key (FotoID),
Foreign Key (KostID)references TempatKost(KostID) ON UPDATE
CASCADE ON DELETE NO ACTION);
Session
Domain MemberNumber varchar, length 10, diawali dengan ‘ME’ Domain PemilikNumber varchar, length 10, diawali dengan ‘PE’ Domain Name varchar, length 50
Domain Position varchar, length 10, ‘Pemilik’ atau ’Member’ atau ’Admin’
Domain Session_id varchar, length 50 Domain User_agent varchar, length 100 Domain Ip_address varchar, length 50 Domain Last_activity date, ‘yyyy-mm-dd’
Session(
SessionID SessionNumber NOT NULL, MemberID MemberNumber NOT NULL, PemilikID PemilikNumber NOT NULL,
Name Name NOT NULL,
Position Position NOT NULL, Session_id Session_id NOT NULL, User_agent User_agent NOT NULL, Ip_address Ip_address NOT NULL, Last_activity Last_activity NOT NULL,
Primary Key (SessionID),
Foreign Key (PemilikID)references Pemilik(PemilikID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (MemberID)references Member(MemberID) ON UPDATE
CASCADE ON DELETE NO ACTION);
SewaKost
Domain MemberNumber varchar, length 10, diawali dengan ‘ME’ Domain KostNumber varchar, length 10, diawali dengan ‘KOS’ Domain NamaPenyewa varchar, length 100
Domain AlamatPenyewa varchar, length 100 Domain KontakPenyewa varchar, length 20 Domain JumlahUang integer
Domain BeritaSewa text
Domain TanggalMulai datetime, yyyy-mm-dd H:M:S Domain TanggalAkhir datetime, yyyy-mm-dd H:M:S Domain TanggalBayar datetime, yyyy-mm-dd H:M:S Domain NomorRekening varchar, length 100
Domain PemilikRekening varchar, length 100 Domain BuktiBayar varchar, length 100 Domain Bank varchar, length 20 Domain CaraBayar varchar, length 20
Domain StatusBayar varchar, length 20, ‘Pending’ atau ‘Selesai’ atau ‘Cancel’
SewaKost(
MemberID MemberNumber NOT NULL, KostID KostNumber NOT NULL, NamaPenyewa NamaPenyewa NOT NULL, AlamatPenyewa AlamatPenyewa NOT NULL, Kontak KontakPenyewa NOT NULL, Total JumlahUang NOT NULL, Berita BeritaSewa NOT NULL, TanggalMulai TanggalMulai NOT NULL, TanggalAkhir TanggalAkhir NOT NULL, TanggalBayar TanggalBayar NOT NULL,
Bank Bank NOT NULL,
Rekening NomorRekening NOT NULL, PemilikRekeningPemilikRekening NOT NULL, Bukti BuktiBayar DEFAULT NULL, CaraBayar CaraBayar NOT NULL,
Status StatusBayar NOT NULL DEFAULT ‘Pending’, Durasi DurasiSewa NOT NULL,
Primary Key (MemberID,KostID),
Foreign Key (MemberID)references Member(MemberID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (KostID)references TempatKost(KostID) ON UPDATE
CASCADE ON DELETE NO ACTION);
BookingKost
Domain MemberNumber varchar, length 10, diawali dengan ‘ME’ Domain KostNumber varchar, length 10, diawali dengan ‘KOS’ Domain NamaPenyewa varchar, length 100
Domain AlamatPenyewa varchar, length 100 Domain KontakPenyewa varchar, length 20 Domain JumlahUang integer
Domain BeritaSewa text
Domain TanggalMulai datetime, yyyy-mm-dd H:M:S Domain TanggalAkhir datetime, yyyy-mm-dd H:M:S Domain TanggalBayar datetime, yyyy-mm-dd H:M:S Domain NomorRekening varchar, length 100
Domain PemilikRekening varchar, length 100 Domain BuktiBayar varchar, length 100 Domain Bank varchar, length 20 Domain CaraBayar varchar, length 20
Domain StatusBayar varchar, length 20, ‘Pending’ atau ‘Selesai’ atau ‘Cancel’
Domain DurasiSewa integer
BookingKost(
KostID KostNumber NOT NULL, NamaPenyewa NamaPenyewa NOT NULL, AlamatPenyewa AlamatPenyewa NOT NULL, Kontak KontakPenyewa NOT NULL, Total JumlahUang NOT NULL, Berita BeritaSewa NOT NULL, TanggalMulai TanggalMulai NOT NULL, TanggalAkhir TanggalAkhir NOT NULL, TanggalBayar TanggalBayar NOT NULL,
Bank Bank NOT NULL,
Rekening NomorRekening NOT NULL, PemilikRekeningPemilikRekening NOT NULL, Bukti BuktiBayar DEFAULT NULL, CaraBayar CaraBayar NOT NULL,
Status StatusBayar NOT NULL DEFAULT ‘Pending’, Durasi DurasiSewa NOT NULL,
Primary Key (MemberID,KostID),
Foreign Key (MemberID)references Member(MemberID) ON UPDATE
CASCADE ON DELETE NO ACTION,
Foreign Key (KostID)references TempatKost(KostID) ON UPDATE
CASCADE ON DELETE NO ACTION);