3
我有三個表:SQL的執行上分臺的參照完整性
property
`id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` MEDIUMINT(8) UNSIGNED NOT NULL,
`title` VARCHAR(100) NOT NULL,
`alias_title` VARCHAR(255) NOT NULL,
`primary_category` TINYINT(3) UNSIGNED NOT NULL,
`second_category` TINYINT(3) UNSIGNED NOT NULL,
`reference_number` VARCHAR(100) NOT NULL,
`description` VARCHAR(10000) NOT NULL,
`no_of_bedrooms` TINYINT(2) UNSIGNED NOT NULL,
`no_of_bathrooms` TINYINT(2) UNSIGNED NOT NULL
property Rental
`property_id` MEDIUMINT(8) UNSIGNED NOT NULL,
`minimum_rental_months` TINYINT(2) UNSIGNED NOT NULL,
`minimum_rental_years` TINYINT(2) UNSIGNED NOT NULL,
`maximum_rental_months` TINYINT(2) UNSIGNED NOT NULL,
`maximum_rental_years` TINYINT(2) UNSIGNED NOT NULL,
`available_from` DATE NOT NULL,
`available_to` DATE NOT NULL,
`type_of_letting` TINYINT(1) UNSIGNED NOT NULL,
`price` DECIMAL(7,2) UNSIGNED NOT NULL,
`deposit` DECIMAL(7,2) UNSIGNED NOT NULL,
`additionals_included_with_rent` VARCHAR(500) NOT NULL
property Sales
`property_id` MEDIUMINT(8) UNSIGNED NOT NULL,
`price` DECIMAL(10,2) UNSIGNED NOT NULL
情況是,物業可以是出租物業或銷售物業。它需要成爲其他人之一。 property_id是銷售和租賃中的外國財產。但是,對於這種結構,用戶實際上可以創建不屬於租賃或銷售的財產。我需要在銷售或出租表中填寫一些財產。
然後,我需要查詢以查找所有屬性和相關的詳細信息。
有人可以請讓我知道確保屬性必須屬於租賃或銷售的最佳方式。
是的,這是正確的屬性可能屬於銷售或租賃。不過,我需要提出一個約束,指出屬性必須屬於這些表中的任何一個。換句話說,它必須是銷售或出租物業。它不能不屬於租賃或銷售。目前它可以獨立創建。 – 2012-08-12 10:45:09
我認爲這叫做Polymorphic Associations – 2012-08-12 10:47:39
一個建議是增加出租和銷售到財產表和CHECK(property_rental_id IS NOT NULL或property_sales_id不是NULL) - 有誰知道這是可能的嗎? – 2012-08-12 12:29:28