我正在构建一个表示“注释”的数据库表,该表在其中两个列中具有父子关系,如下所示:
ID           INT(10) PK NOT NULL UNSIGNED ZEROFILL AUTOINCREMENT  -- Primary key
parent_ID    INT(10) UNSIGNED ZEROFILL                 -- References Primary key
username     VARCHAR(30) NOT NULL
information  VARCHAR(256) NOT NULL
comment      VARCHAR(256) NOT NULL
whereusername是user表的外键,是写笔记的人的用户名,是笔记中information包含的信息,comment是username添加的内容。comment总会有东西在里面,不一定和以前的用户一样。
这个概念是有人可以“复制”一个便笺并拥有自己的评论,并说“我从 xxx 那里得到了这个便笺”,从而形成了父子关系。可能有点像在 Facebook 上分享。
如何正确形成 parent_ID 列?我应该使用识别关系吗?哪些方面是强制性的?我认为这必须是一对多的关系,因为五个人可以复制同一个笔记。
我希望复制比创建新笔记更多,因此NULL记录中的 ' 数量会相对较少,但是要完全摆脱空值,我应该应用约束并简单地使用基本上无意义的记录NOT NULL来创建默认父级0在ID 0软件中并注意这一点?
这甚至是正确的方法吗?我是否应该采用两表系统:
ID          INT(10)      PK
information VARCHAR(256)
orig_user   VARHCAR(30)  FK  -- Potentially
和
ID          INT(10)      PK FK
username    VARCHAR(30)  PK FK
comment     VARCHAR(256)
哪个按定义消除了任何可能NULL的 's ?
谢谢