İyi günler benim sorum Otel kaydı yapılırken oda tiplerinin de seçilebileceği bir özellik olacak. Checkbox ile oda tipleri seçilecek. Dolayısı ile bir otelin birden fazla oda tipi olacak. Otelin bilgilerini girdikten sonra birden fazla oda tipi de eklenecek normal olarak buna uyan bir tablo ilişkisi nasıl yapılabilir ? Not: Oda ve Otel tablolarım olacak .

soruldu: 11 Kas, 13:52

mustafadarcan's gravatar image

mustafadarcan
01
cevap kabul oranı: 0%


Mysql için aşağıdaki gibi bir şey işinizi görebilir.

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

CREATE TABLE IF NOT EXISTS `oda` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `otel_id` int(11) NOT NULL,
  `oda_tip_id` int(11) NOT NULL,
  `ad` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_oda_otel` (`otel_id`),
  KEY `FK_oda_oda_tip` (`oda_tip_id`),
  CONSTRAINT `FK_oda_oda_tip` FOREIGN KEY (`oda_tip_id`) REFERENCES `oda_tip` (`id`),
  CONSTRAINT `FK_oda_otel` FOREIGN KEY (`otel_id`) REFERENCES `otel` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/*!40000 ALTER TABLE `oda` DISABLE KEYS */;
REPLACE INTO `oda` (`id`, `otel_id`, `oda_tip_id`, `ad`) VALUES
    (1, 1, 2, 'O306');
REPLACE INTO `oda` (`id`, `otel_id`, `oda_tip_id`, `ad`) VALUES
    (2, 2, 1, 'O203');
REPLACE INTO `oda` (`id`, `otel_id`, `oda_tip_id`, `ad`) VALUES
    (3, 1, 3, 'O901');
/*!40000 ALTER TABLE `oda` ENABLE KEYS */;

CREATE TABLE IF NOT EXISTS `oda_durum` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `oda_id` int(11) NOT NULL DEFAULT '0',
  `baslangic` datetime NOT NULL,
  `bitis` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_oda_durum_oda` (`oda_id`),
  CONSTRAINT `FK_oda_durum_oda` FOREIGN KEY (`oda_id`) REFERENCES `oda` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

/*!40000 ALTER TABLE `oda_durum` DISABLE KEYS */;
REPLACE INTO `oda_durum` (`id`, `oda_id`, `baslangic`, `bitis`) VALUES
    (1, 3, '2016-11-12 10:53:59', '2016-11-17 10:54:00');
REPLACE INTO `oda_durum` (`id`, `oda_id`, `baslangic`, `bitis`) VALUES
    (2, 1, '2016-11-04 10:53:59', '2016-11-05 10:54:00');
REPLACE INTO `oda_durum` (`id`, `oda_id`, `baslangic`, `bitis`) VALUES
    (3, 2, '2016-11-08 10:53:59', '2016-11-11 10:54:00');
REPLACE INTO `oda_durum` (`id`, `oda_id`, `baslangic`, `bitis`) VALUES
    (4, 1, '2016-11-07 10:53:59', '2016-11-16 10:54:00');
/*!40000 ALTER TABLE `oda_durum` ENABLE KEYS */;

CREATE TABLE IF NOT EXISTS `oda_tip` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ad` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/*!40000 ALTER TABLE `oda_tip` DISABLE KEYS */;
REPLACE INTO `oda_tip` (`id`, `ad`) VALUES
    (1, 'Tek kişilik');
REPLACE INTO `oda_tip` (`id`, `ad`) VALUES
    (2, 'Süit');
REPLACE INTO `oda_tip` (`id`, `ad`) VALUES
    (3, 'Kral dairesi');
/*!40000 ALTER TABLE `oda_tip` ENABLE KEYS */;

CREATE TABLE IF NOT EXISTS `otel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ad` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

/*!40000 ALTER TABLE `otel` DISABLE KEYS */;
REPLACE INTO `otel` (`id`, `ad`) VALUES
    (1, 'Ankara Otel');
REPLACE INTO `otel` (`id`, `ad`) VALUES
    (2, 'İstanbul Otel');
/*!40000 ALTER TABLE `otel` ENABLE KEYS */;

/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

Örnek oda durumu listeleme

select
    od.id,
    t.ad otel_adi,
    o.ad oda_kodu,
    ot.ad oda_tipi,
    od.baslangic kira_baslangici,
    od.bitis kira_bitisi
from oda_durum od
left join oda o on o.id = od.oda_id
left join oda_tip ot on ot.id = o.oda_tip_id
left join otel t on t.id = o.otel_id
permanent link

cevaplandı: 12 Kas, 03:12

acemi's gravatar image

acemi
8702515
cevap kabul oranı: 36%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×66
×1
×1
×1
×1

Soruldu: 11 Kas, 13:52

Görüntüleme: 104 kez

Son güncelleme: 12 Kas, 03:12

powered by BitNami OSQA