django中用外键还是非外键?建议尽量用外键。
来源:互联网 发布:app源码 带后台数据库 编辑:程序博客网 时间:2024/06/06 04:01
标题:django中用外键还是非外键?建议尽量用外键。
# order = models.ForeignKey(
# 'oms.Order',
# related_name='order_history',
# on_delete=models.CASCADE,
# verbose_name='订单(FK)')
order_id = models.CharField(max_length=20, null=True, verbose_name='订单id')
用外键方式,django会检查。比如不允许非法的或不存在此数据库中的order_id.
删除数据库中的记录时,也要先删除历史表,才能删除此order_id的记录。看起来麻烦,但实际上,这样有利于保证数据的一致性和正确性。
当然,django查表也更为方便。可以联合查表,prefetch()和select_related()都建立在FK外键的基础上。
我的建议是:在同一个django工程中,能够用外键的地方,坚决用外键。
如果一个entity_id,同时想表示多张表的外键,那怎么办呢?我的建议是定义不同的多个外键。
# order = models.ForeignKey(
# 'oms.Order',
# related_name='order_history',
# on_delete=models.CASCADE,
# verbose_name='订单(FK)')
order_id = models.CharField(max_length=20, null=True, verbose_name='订单id')
用外键方式,django会检查。比如不允许非法的或不存在此数据库中的order_id.
删除数据库中的记录时,也要先删除历史表,才能删除此order_id的记录。看起来麻烦,但实际上,这样有利于保证数据的一致性和正确性。
当然,django查表也更为方便。可以联合查表,prefetch()和select_related()都建立在FK外键的基础上。
我的建议是:在同一个django工程中,能够用外键的地方,坚决用外键。
如果一个entity_id,同时想表示多张表的外键,那怎么办呢?我的建议是定义不同的多个外键。
阅读全文
0 0
- django中用外键还是非外键?建议尽量用外键。
- mysql使用建议,尽量避免这些问题
- mysql使用建议,尽量避免这些问题
- mysql使用建议,尽量避免这些问题
- django工程布局建议
- django工程布局建议
- SOA返回结果还是尽量采用字符串
- 线程中用Thread还是runable
- 用外键还是不用外键
- 可口可乐零度(ZERO),建议大家尽量不要喝了
- 可口可乐零度(ZERO),建议大家尽量不要喝了
- MySQL建议列属性尽量为NOT NULL
- MySQL建议列属性尽量为NOT NULL
- MySQL建议列属性尽量为NOT NULL
- MySQL建议列属性尽量为NOT NULL
- Django filter中用contains和icontains区别
- shell中用case语句判断输入的一个键是大写字母、小写字母还是数字
- SOCKET中用select还是用poll?
- GreenDao查询数据带缓存
- [spark streaming] DStream 和 DStreamGraph 解析
- Java编程思想(Thinking in Java)阅读笔记(仅供自身学习,持续更新)
- 从浅到深了解ArrayList
- 搭建个人博客-hexo+github详细完整步骤
- django中用外键还是非外键?建议尽量用外键。
- JAVA第十四周作业
- maven项目中添加自己的jar包
- 二叉树前中后序算法
- request.getParameterMap value 值出现数组的情况,转
- Spring Bean的生命周期(非常详细)
- Spring基础:使用外部属性文件
- 事物的传播特性和隔离级别
- CAS 单点登录学习