设计一套中药管理的系统,涉及到中药生产的供应商信息,包括产地,位置及生产公司的信息,另外包括购买这些产品的订单信息及物流信息, 包括订单的订单号,产品数据,市场单价,成交价格,产品质量,物流发货批号,数量,路途票据等,生成一下表结构及主键及一对多,多对多的关系,最终生成django的mode.py文件
时间: 2023-10-11 15:06:41 浏览: 87
根据以上需求,设计的表结构如下:
### Supplier(供应商)表
| Column | Type | Description |
| ------------ | -------- | -------------------- |
| id | Integer | 主键,自增长 |
| name | Char | 供应商名称 |
| location | Char | 供应商所在地 |
| production | Char | 生产公司名称 |
| origin | Char | 中药原材料产地 |
| create_time | DateTime | 创建时间 |
| update_time | DateTime | 更新时间 |
### Product(产品)表
| Column | Type | Description |
| ------------- | -------- | --------------------- |
| id | Integer | 主键,自增长 |
| name | Char | 产品名称 |
| supplier_id | Integer | 外键,关联Supplier表 |
| market_price | Decimal | 市场单价 |
| quality | Char | 产品质量 |
| create_time | DateTime | 创建时间 |
| update_time | DateTime | 更新时间 |
### Order(订单)表
| Column | Type | Description |
| ----------------- | -------- | --------------------------- |
| id | Integer | 主键,自增长 |
| order_no | Char | 订单号 |
| product_id | Integer | 外键,关联Product表 |
| deal_price | Decimal | 成交价格 |
| quantity | Decimal | 数量 |
| logistics_no | Char | 物流发货批号 |
| create_time | DateTime | 创建时间 |
| update_time | DateTime | 更新时间 |
| logistics_records | Text | 物流路途票据,以JSON字符串存储 |
其中,Supplier表和Product表为一对多关系,Product表和Order表为一对多关系。
在Django中,对应的models.py文件代码如下:
```python
from django.db import models
class Supplier(models.Model):
name = models.CharField(max_length=50)
location = models.CharField(max_length=100)
production = models.CharField(max_length=100)
origin = models.CharField(max_length=100)
create_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)
class Product(models.Model):
name = models.CharField(max_length=50)
supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
market_price = models.DecimalField(max_digits=10, decimal_places=2)
quality = models.CharField(max_length=50)
create_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)
class Order(models.Model):
order_no = models.CharField(max_length=50)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
deal_price = models.DecimalField(max_digits=10, decimal_places=2)
quantity = models.DecimalField(max_digits=10, decimal_places=2)
logistics_no = models.CharField(max_length=50)
create_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)
logistics_records = models.TextField()
```
阅读全文