Разработка базы данных для биллинговой системы - PullRequest
2 голосов
/ 17 января 2012

Я пытаюсь создать приложение для 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)

Я сомневаюсьчто дизайн продукта-статьи сделан хорошо, должен быть другой способ сделать это, потому что у меня будет много повторяющихся данных в моей БД.

Другой вопрос, если статья «принадлежит» заказу или еслистатья имеет приказ «принадлежать», я не знаю, ясен ли вопрос.

РЕДАКТИРОВАТЬ1:

Моя мысль о товаре:


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

И другой вопрос:


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

1 Ответ

0 голосов
/ 18 января 2012

Может быть, что-то вроде этого:

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()

Проверьте также: Дополнительные поля в отношениях "многие ко многим"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...