Bir ilişkisel veritabanı, diziler, ya da herhangi bir nesne saklamak gerekir. İlişkisel veritabanı, first normal form, temel veri türleri ile alanların sadece oluşmalıdır olmak. Bu INT, CHAR, VARCHAR, DECIMAL vs Ayrıca, hiç yinelenen grupları içermelidir ve sütunu olmalıdır içsel sipariş. Diziler, onların çok tanımı gereği, bu ihlal. Diğer değerlerini depolamak için ihtiyacı hissediyorum, bir ilişkisel veritabanı kavramını yanlış var.
Eğer vb diziler gibi nesneleri saklamak istiyorsanız, o zaman bu tür kullanım için oluşturulan bazı veritabanı sistemi denemelisiniz, yani Object Databases
Dizi depolamak için en iyi yolu, dizi için ek bir tablo yapmak, ve kendi satırında dizinin her değerini koymak, sonra ana tabloda dizi tanımlayıcı çeşit saklamaktır.
Örnek:
CREATE TABLE People (
ssn INT,
first_name VARCHAR(15) NOT NULL,
last_name VARCHAR(20) NOT NULL,
PRIMARY KEY (ssn)
);
CREATE TABLE Emails (
belongs_to INT,
email VARCHAR(128),
PRIMARY KEY (belongs_to, email),
UNIQUE(email),
CONSTRAINT fk_belongs_to_ssn FOREIGN KEY (belongs_to) REFERENCES People (ssn)
);
Bu şemada, her kişi birden fazla e-posta olabilir. Her e-posta İnsanlar tabloda bir kişiye aittir. E-postaların bir dizi ssn = belongs_to üzerinde e-postalar ile insanlar katılarak bir kişi bulunabilir. Bir tek e-posta kolayca belirli bir değere ve / veya desen için e-posta sütun arayarak bulunabilir.