Bu benim ilk gönderiim ve ben bir mysql noob'um, bu yüzden bu sorunun uzunluğu için özür dilerim.MYSQL tablo sütun kontramanı başka bir tablo sütunlarına dayanarak
CREATE TABLE `cctypevals` (
`cctypevalsKEY` integer NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cctypeID` varchar(50) NOT NULL, FOREIGN KEY(cctypeID) REFERENCES cctype(cctypeID) ,
`value` varchar(50) )
cctypeID
kullanıcı tablolar, örneğin 'taskSTATE' dan alan adlarını içeren,:
AMAÇ
ben mysql bu olurdu yabancı bir alanda 'cctypeID' ile, bir arama tablosu cctypevals
var 'serviceTYPE', 'projectCAT' vb.
Değer alanı, bu kullanıcı tablosu alanları için yalnızca izin verilen değerleri içerir.
Böylece, örneğin bir 'çoklu' Kama arama tablosu gibi cctypevals
hareket eder:
HomeVisit döndürebilir cctypevals gelen
seçme değeri, BackToBase vb
biliyorum Her alan için tek bir arama tablosuna sahip olmak daha kolay olurdu ama bu benim sahip olduğum şey.
ben kısıtlayan (bir sql tablo oluşturmak veya deyimi değiştirmek) nasıl
SORU
, task.taskSTATE, service.serviceTYPE vb onlar sadececctypevals
değerleri kabul edebilir şöyle alanlarla tablolar.
value
cctypeID
uygun alan adını içerir?
Bunun için teşekkürler. Yani bir tetikleyicide, bir seçim çalıştırıp, değerin olup olmadığını kontrol edeyim? Bunun diğer tek yolu, mevcut arama tablosunu ayrı tablolara ayırmak mı? – reddog0000
Ya da enum veya setleri kullanmak, ancak bunlar yabancı anahtarların tüm amacı bozguna uğratır. Yani, evet, ya tetikleyicileri kullanın ya da her arama türü için ayrı bir arama tablosuna sahip olun. – Shadow
Tekrar teşekkürler - Buna bakacağım. – reddog0000