【发布时间】:2014-10-10 16:08:33
【问题描述】:
我有 php web 编程背景,并且是 Django 新手。我正在帮助我的兄弟建立一个在线系统来管理库存,并且我最近遇到了数据库设计和编码问题。需要帮助!
如何将“cmets”表附加到 1 个或多个表?
也就是说,我有一组“可能的产品”、“库存”、“供应商”等表格。我想为每个表格附加一个“cmets”,其中“cmets”包含所有评论他们的记录。因此,我认为我应该制作一个通用的“评论”表来保存产品、库存、供应商的所有 cmets。对吗?
我的桌子的概念模型:
可能的产品
id: int (pk)
name: varchar
url: varchar
price: decimal
created_at: datetime
updated_at: datetime
cmets
id: int (pk)
parent_id: int (fk)
content: text
author: int (fk)
table: char (which the table this comment belongs to)
created_at: datetime
updated_at: datatime
我的问题是,当“possible_products”表是“comment”的父表时,父表的外键(id 号)存储在“comment”表中以便链接它们。
但是,“库存”表和“供应商”表的 fk 怎么样?不应该是这样:我在“cmets”表中创建了另外 2 个“inventory_id”或“suppiler_id”列。 (也就是说,当我想链接第 4 个父表时,我不应该创建第 4 列。)
那么,我应该使用 Django 的通用外键吗? (所以,我的“评论”表设计是正确的。)以及如何使用/实现它?
或者,我应该/用外键制作一个中间表来连接“可能的产品”/“库存”/“卖家”和“cmets”更好吗?(关于设计......就像一个多对- 多关系)
附:我主要在 Django Admin 中开发系统。使用 Python 3.4 和 Django 1.7rc2。
【问题讨论】:
标签: database django foreign-keys comments