2012-01-17 19 views
2

私はリッテショップの管理に役立つdjangoアプリケーションを設計しようとしています。私は今より簡単な方法で請求書を作成できるようにしたいと思いますが、私はデータベース設計の助けが必要です。請求システムの設計データベース

今、私はそれをこのように持っている:

class Product(models.Model): 
    name = models.CharField(max_length=200) 
    price = models.IntegerField() 

class Article(models.Model): 
    product = models.ForeignKey(Producto) 
    qty = models.IntegerField() 
    id = models.AutoField(primary_key=True) 

class Order(models.Model): 
    number = models.CharField(max_length=20, primary_key=True) 
    client = models.ForeignKey(Client) 
    invent = models.ForeignKey(Invent) 
    articles = models.ManyToManyField(Article) 

を私はDBには多くの繰り返しのデータを持つことになりますので、これを行うための別の方法があるはず、製品-条のデザインがよく行われていることを疑います。

もう1つの質問は、商品が注文によって「所有」されている場合、または商品に「所属」する注文がある場合、質問が明確かどうかわかりません。

EDIT1:製品-記事に関する

私の思考:

 

    +------------------+     +----------------+  +------------------+ 
    | Product   |     | Product  |  |  Article  | 
    |------------------|     |----------------|  |------------------| 
    |     |     |    |  |     | 
    | Name    |     | Name   <--------+ Product   | 
    |     |   VS  |    |  |     | 
    | Price   |     |    |  |     | 
    |     |     | Price   |  | Qty    | 
    | Qty    |     |    |  |     | 
    +------------------+     +----------------+  +------------------+

そして、他の質問です:

 

    +------------------+        +-----------------+  +--------------+ 
    |  Order  |        | Order  <-------+ Article | 
    |------------------|        |-----------------|  |--------------| 
    | Number   |  +--------------+   |     |  |    | 
    |   +------------->| Article  |   | Number   |  | ...   | 
    | Client | +----------> +--------------+ VS |     |  |    | 
    |   | |  |        | Client   |  + Order  | 
    | ...  | |  |        |     |  |    | 
    |   | |  |        | ...    |  +--------------+ 
    | Articles + +  |        |     | 
    +------------------+        +-----------------+
+1

あなたは*文に手の込んだ「私は製品-条のデザインがよくやっていることを疑う私は私のDBには多くの繰り返しのデータを持つことになりますので、これを行うための別の方法があるはず」?* –

+1

それは難しいですあなたがここで何を求めているのかを判断する。あなたの質問のタイトルを15語以内で表現できるようにあなたの質問を策定してみてください*あなたの質問はより具体的でなければなりません。 –

+1

私はそれをより良く説明しようと思っています。 –

答えて

0

たぶん、このような何か:

class Product(models.Model): 
    name = models.CharField(max_length=200) 
    current_price = models.IntegerField() 

class Order(models.Model): 
    number = models.CharField(max_length=20, primary_key=True) 
    client = models.ForeignKey(Client) 
    invent = models.ForeignKey(Invent) 
    total = models.IntegerField() 

class Article(models.Model): 
    product = models.ForeignKey(Product) 
    order = models.ForeignKey(Order) 
    qty = models.IntegerField() 
    price = models.IntegerField() 

チェックこれもExtra fields on many-to-many relationships

+0

はい、私はあなたが持っているか、自分が持っているコードが優れているかを議論しようとしています。 ありがとう –

関連する問題