Alıntı Creator - SQL kullanmanın en iyi yolu

2 Cevap php

Ben bir alıntı yaratıcısı araç yapıyorum. Tüm müşteri bilgileri depolayacak bir tablo var. Sonra customer_id anahtarını paylaşmak ve alıntının tüm ayrıntıları depolayacak bir alıntı tablo var.

Ben alıntı tabloda alıntı ürünlerin tüm ayrıntıları saklamak istiyorum. Şimdi bir alışveriş sepeti ile tüm ürün içinde detayları ve çapraz referansla bir ürün tablo olurdu, ama bu şurada alıntı edilecek ürünleri gibi ürünlerin hiçbir dizi miktarda olduğu neredeyse infinate ve çoğu sadece alıntı olacak kez ve farklı fiyatlarla.

Gelecekte alıntı yukarı çekildiğinde Yani orijinal alıntıda tüm ürün ve onların bulundukları quantites ve fiyatları bilmek istiyorum.

Şimdi bu yaptığını düşünebilirsiniz tek yolu oluşturulan her teklif için yeni bir tablo oluşturmak ve benzersiz quote_id ile tablo adı öneki olurdu ama bu tablo ile çok dağınık olabilir - kesinlikle daha var - lütfen yardım eğer Eğer daha iyi bir yol düşünemiyorum.

Teşekkür ve umut kendimi tamam açıkladı.

2 Cevap

Sen ürünler tablosunu-referansı çapraz, ama değişebilir herhangi bir bilgi kopyalayabilirsiniz. Bu, geri, her ürünün güncel verilere bir bağlantı da alıntı oluşturulduğu zaman, ve gibi bilgiler de var demektir.

örneğin QuoteProduct tablo (Tırnaklar QuoteProduct üzerinden ürün ile bir çok-çok ilişkisi olurdu):

---------------         ------------------        ---------------
| PRODUCT     |  1:many |  QUOTEPRODUCT  | many:1 | QUOTE       |
| ProductId   |--------<|  QuoteId       |>-------| QuoteId     |
| Price       |         |  ProductId     |        | DateCreated |
| Description |         |  Price         |        | Description |
---------------         |  Description   |        ---------------
                        -----------------

Sen kendi birincil anahtar QuoteProduct verebilir ya da bunu, QuoteId Productıd yapabilirsiniz. Eğer tek bir teklifle birden çok kez aynı ürünü olmasını istiyorum ama farklı bir fiyat vs ile muhtemelen bunu kendi birincil anahtarını vermek gerekir.

one yeni tablo, quote_items diyoruz oluşturun. Temel olarak, bu tablo onların fiyatları ile bir alıntı ürünlerin tüm kopyalarını içeren as they were at the time the quote was made. Bu quote_items tablo yabancı anahtar olarak alıntı kimliği vardır.

, Bir teklif oluşturabilir tırnak tabloda yeni bir giriş oluşturmak, sonra sadece oluşturduğunuz alıntı alıntı kimliği ile, quote_items tabloya alıntı tüm öğeleri kopyalamak için.