MVC modelleri haritalama sözlük veritabanı tabloları Yaklaşım

2 Cevap php

benim problem için doğru bir yaklaşım üzerinde konuşmak için bir adam programcı eksik, sana sormaya karar verdi. MVC bir model eşleme sözlük tabloları tercih yaklaşımı nedir, ne olursa MVC framework / ortamda kullanıyorsunuz?

Benim sorunum sadece sözlükler olarak hizmet ve yabancı anahtar olarak diğer tablolarla ilgili veritabanı tabloları bir çift var. Bunun iyi bir örneği request a status_id burada durumları ayrı bir status tabloda tutulmaktadır sahip olan bir tablo olacaktır.

Şimdi, ikinci tablo uygulamanın kod tarafında bir modeline eşlenmesi için gerekmektedir. Ben de yapabilirsiniz:

  1. Define all the statuses as constants so they can be referenced in the code without poking those dreaded 'magic numbers' here and there. However, any change to the dictionary (database-side) would require a code modification.

  2. Omit the `status` table at all and just define meaningful constant to be used across the code. Pros: one place to rule them all. Cons: all changes require diving into the code, now the database features 'magic numbers' not really being foreign keys

  3. Try to translate statuses into the model automagically, adding a field like 'const_name' to the 'statuses' table and them creating the constants on the fly while loading the model. This one seems to have the most sense for me.

Bu konuya her zamanki yaklaşım paylaşmak misin?

Best, Bartek

2 Cevap

Sadece yerine kod veritabanında bulunan sabitler bir dizi olacak eğer, kullanmak herkes için status sabitleri statik sınıf yük olabilir. Bu şekilde db ve kod arasında hiçbir çoğaltılması ve hiçbir sihirli sayılar var.

edit: statik bir sınıf olduğundan, bu sabitleri tembel yük olabilir. Birisi bir durum değeri sorar ilk kez kadar veritabanını vurmayın.

Genellikle tablo ile gitmek daha iyidir bunu değiştirmek için gidiyor eğer ben söyleyebilirim. Aksi takdirde statik sınıf (örneğin hiçbir nokta seks, ya da devletlerin listesini depolamak için tablo olan) gayet iyi.