Bunu yapmanın yaygın bir yolu, bir özellikler dosyasına simüle olan bir "özellikler" tablosuna sahip olmaktır. Burada tüm uygulama sabitlerinizi saklayabilir veya yalnızca sahip olmanız gereken sabit şeyleri saklayamazsınız.
Daha sonra bilgileri gerektiği gibi bu tablodan alabilirsiniz. Benzer şekilde, kaydetmek için başka bir ayarınız olduğunu fark ettiğinizde, ekleyebilirsiniz. İşte bir örnek:
property_entry_table
[id, scope, refId, propertyName, propertyValue, propertyType]
1, 0, 1, "COMPANY_INFO", "Acme Tools", "ADMIN"
2, 0, 1, "SHIPPING_ID", "12333484", "ADMIN"
3, 0, 1, "PAYPAL_KEY", "2143123412341", "ADMIN"
4, 0, 1, "PAYPAL_KEY", "123412341234123", "ADMIN"
5, 0, 1, "NOTIF_PREF", "ON", "ADMIN"
6, 0, 2, "NOTIF_PREF", "OFF", "ADMIN"
Bu şekilde sahip olduğunuz verileri ve gelecek yıl sahip olacağınız ve henüz bilmediğiniz verileri saklayabilirsiniz :).
Bu örnekte, kapsamınız ve refD'niz arka uçta istediğiniz herhangi bir şey için kullanılabilir. Yani propertyType "ADMIN" kapsam 0 refId 2 içeriyorsa, bunun ne tercih olduğunu bilirsiniz.
Mülk türü, bir gün yönetici olmayan bilgileri burada da saklamanız gerektiğinde elinize geçer.
Alışveriş sepeti verilerini bu şekilde depolamamanız gerektiğini veya bu konuyla ilgili aramalar yapmayacağınızı unutmayın. Ancak veriler Sisteme özgü ise, bu yöntemi kesinlikle kullanabilirsiniz.
Örneğin: DATABASE_VERSION ürününüzü saklamak istiyorsanız , böyle bir tablo kullanırsınız. Bu şekilde, uygulamayı yükseltmeniz gerektiğinde, istemcinizin yazılımınızın hangi sürümüne sahip olduğunu görmek için özellikler tablosunu kontrol edebilirsiniz.
Mesele şu ki, bunu sepete ait şeyler için kullanmak istemiyorsunuz. İş mantığınızı iyi tanımlanmış ilişkisel tablolarda tutun. Özellikler tablosu yalnızca sistem bilgisi içindir.