社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  问与答

一个表使用ORM关系模型分解表示

huang • 10 年前 • 2825 次点击  

各位,大家好.

我工厂使用一个表packages来储存相关产品包装记录. 表的字段与内容大体如下:

 id    工单号             产品名称     产品序列号     箱号          装箱时间         装箱人
1     1501-00000          产品1     F0000001      001          2015-07-03        李某
2     1501-00000          产品1     F0000002      002          2015-07-04        陈某
3     1501-00000          产品1     F0000003      003          2015-07-04        陈某
...

当开始阅读到djago 模型表, 发现以前建的packages表不规范, 想按django 模型设计成多个关联表.

我想把package表的工单号, 产品名称和 装箱人分拆出来, 建立成四个关联表,
即 packages, work_order, products, user.

注: 产品名称可以有多个工单号

请问model下如何写? 各位能否指点下啊? 谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1142
 
2825 次点击  
文章 [ 5 ]  |  最新文章 10 年前
wy
Reply   •   1 楼
wy    10 年前

数据表之间的关系图:

packages ----> 装箱记录 ----> 员工

   |----> 产品
   \----> 工单

表名:字段名列表
packages:(工单_id, 产品_id, 装箱记录_id)
装箱记录:(箱号,完成时间,员工_id)
员工:(姓名, )
产品:(序列号,名称)
工单:(序列号,)

huang
Reply   •   2 楼
huang    10 年前

社区感觉发代码格式不方便啊.

以为粘贴过来就好了,没想到还要一行一行的给代码重新缩进.

huang
Reply   •   3 楼
huang    10 年前

@Django中国社区

我是这样写的, 请指点是否规范?

from django.db import models`

class User(models.Model):
    name = models.CharField(max_length=30)

class Product(models.Model):
    name = models.CharField(max_length=30)

class WorkOrder(models.Model):
    name = models.CharField(max_length=30, unique=True)
    product = models.ForeignKey(Product)

class PackageRecord(models.Model):
    product_sn = models.CharField(max_length=20)
    box_num = models.SmallIntegerField()
    datetime_joined = models.DateTimeField(auto_now_add=True)
    workorder = models.ForeignKey(WorkOrder)
    user = models.ForeignKey(User)
Py站长
Reply   •   4 楼
Py站长    10 年前
products:
    user_id
    package_id

work_order:
   user_id
   products_id
huang
Reply   •   5 楼
huang    10 年前

@Django中国社区 , 大神, 求指点.