Yanıtlar:
Öyle değil. Belirsiz bir eşdeğeri var:
mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))
Bunda bulduğum en iyi çözüm, birincil anahtar olarak olası değerlerle bir arama tablosu oluşturmak ve arama tablosuna bir yabancı anahtar oluşturmaktır.
IMHO Arama tabloları, bilgi tutarlılığı ile gidilecek yoldur. Ancak, bunun gibi bir örneği izleyerek "Kötü Büyü Sayıları" ndan kaçınırsanız: T4 kullanarak bir veritabanı arama tablosundan enum oluşturun
İyi eğlenceler!
CREATE FUNCTION ActionState_Preassigned()
RETURNS tinyint
AS
BEGIN
RETURN 0
END
GO
CREATE FUNCTION ActionState_Unassigned()
RETURNS tinyint
AS
BEGIN
RETURN 1
END
-- etc...
Performansın önemli olduğu yerlerde, yine de katı değerleri kullanın.
SQL Server'da numaralandırmaları uygulamak istediğimde bu ilginç yaklaşımı buldum.
Aşağıdaki bağlantıda belirtilen yaklaşım, tüm veritabanı numaralandırma ihtiyaçlarınızın 2 merkezi tablodan karşılanabileceği düşünüldüğünde oldukça zorlayıcıdır.