Android SQLite中强制列的默认值(我们正在使用用于Firefox的SQLite管理器)。它们是必要的吗?如果是,它们应该是什么?

Android SQLite中强制列的默认值(我们正在使用用于Firefox的SQLite管理器)。它们是必要的吗?如果是,它们应该是什么?,android,database,sqlite,Android,Database,Sqlite,我的队友使用SQLite Manager for Firefox为我们的android应用程序创建了一个SQLite数据库,但我注意到ERD中大多数标有星号的列在他创建的数据库中没有NOTNULL约束。我问他这件事,他说他不确定该把什么作为默认值。我自己也尝试过添加带有约束的列。如果我选择NOTNULL,但将默认值保留为空,则会得到以下结果 SQLiteManager: ALTER TABLE "main"."productorder" ADD COLUMN "cart_id" INTEGER

我的队友使用SQLite Manager for Firefox为我们的android应用程序创建了一个SQLite数据库,但我注意到ERD中大多数标有星号的列在他创建的数据库中没有NOTNULL约束。我问他这件事,他说他不确定该把什么作为默认值。我自己也尝试过添加带有约束的列。如果我选择NOTNULL,但将默认值保留为空,则会得到以下结果

SQLiteManager: ALTER TABLE "main"."productorder" ADD COLUMN "cart_id" INTEGER NOT NULL  [ Cannot add a NOT NULL column with default value NULL ]
我希望大多数列都没有默认值,但程序员只能在不给出值的情况下生成一行

如果有必要,我们可以为所有必填列提供默认值。我发现了这个问题,它说可以接受作为VARCHAR列的默认值


但是我不知道外键的默认值应该是多少,比如购物车id、日期、邮政编码等等。

那么,默认邮政编码有什么用呢?哦,这个人报名了,但没有提供。我们就把它们移到90210。默认值在某些情况下是有用的,但你不能随意地将它们应用到所有东西上。如果默认值可能错误,则不要使用实际值。将字段设为null,并像预期的那样使用null:未知值。是的,这就是我的想法,也是为什么我说我更喜欢大多数列没有默认值。但是我们想使zipcode成为必需的,所以我们想使它不为null。真的有可能使某些东西既不为null又不为null吗?还是应该让数据库中的所有内容都保持原样,只强制java代码中必须的内容?