Sqlite 这个表架构结构有什么不好的地方

Sqlite 这个表架构结构有什么不好的地方,sqlite,database-design,database-schema,Sqlite,Database Design,Database Schema,我有一个表结构,如下所示: `CREATE TABLE "pages" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "body" varchar(255), "author" varchar(255), "email" varchar(255),

我有一个表结构,如下所示:

`CREATE TABLE "pages" (
   "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
   "title" varchar(255),
   "body" varchar(255),
   "author" varchar(255), 
   "email" varchar(255), 
   "reference" varchar(255),
   "created_at" datetime,
   "updated_at" datetime);`
这张桌子的结构不好吗

编辑-1
我正在使用它的sqlite数据库。

如果失败,可能是因为第二行的v和archar之间的空间?尽管这可能只是剪切/粘贴错误。

基于您提供的有限信息。如果这张桌子适合你的需要,那么不,它还不错

但是,如果您将有多个条目的同一作者。您可能想考虑从页表中删除作者,并为作者设置一个单独的表,然后使用作者和页之间的外键关系。
如果每个作者都有多封电子邮件,你也可以对电子邮件做同样的事情

你没有给我们太多的支持。但是,如果您的项目有一位技术负责人希望您满足某些结构标准,那么应该有一本书、一篇论文、一个文件或一个网页来告诉您对您的期望

唯一不可为空的列是无意义的id号。这几乎肯定是个问题。我不知道所有的列名都是什么意思,但我怀疑它们中的任何一个是否应该为空

所有varchar列的长度都相同。那可能不是你想要的

我猜网页指的是网页。如果是这样,您可能希望标题是唯一的。您可能希望它少于255个字符

如果电子邮件是指作者的当前电子邮件地址,那么作者和电子邮件之间存在可传递的依赖关系。它还没有在3NF。如果电子邮件是指作者在发表时的电子邮件地址,那么作者和电子邮件之间可能存在多值依赖关系。所以它还没有进入4NF

您可能也不希望电子邮件地址允许255个字符


创建时的列和更新时的列是关于行的,而不是关于页面的。我更喜欢将行的数据保存在单独的表中;这将减少实际数据的大小,缩小表的范围,允许每页有更多的行,并提高速度。

此表结构不好吗?如果你的问题格式不好,很难说出来。请正确设置表定义的格式,使其可读。有人告诉过你它不好吗?我们需要更多的背景…因为我看不出它有什么明显的问题。我不知道它是否坏。我们现在所能做的就是猜测每一个专栏的用途,这并不是提供反馈的好基础。嗯……是的……我从技术负责人那里得到一条评论,说这很糟糕,因为它的结构不正确。他说。我需要更改varchar的大小吗?我不知道您的要求,但我认为最好使用IDENTITY1,1而不是AUTOINCREMENT,并避免将列命名为引用(SQL Server中的关键字),这可能会在编写查询时造成问题。为插入时创建的_设置默认值。例如:默认的GETDATE。示例采用SQL SERVER语法。Regardshm,不知道为什么会被否决——这是对当时可见内容的一个完全理智的回应……当然,但问题是关于表结构,而不是语法。这是一个很好的评论,但它不是对原始问题的回答。