什么';这是为<;创建MySQL表的正确方法;选择>;字段哪个是可选的?

什么';这是为<;创建MySQL表的正确方法;选择>;字段哪个是可选的?,mysql,auto-increment,Mysql,Auto Increment,制作表格时,我总是使用自动增量。现在我正试图为html字段创建一个表,但问题是它被设置为可选,因此第一个..的值必须为0。这是否意味着当我构造表时,第一个自动增量也必须从0开始?这是真的吗 编辑:谢谢您的评论。我将在某个内部JOIN语句中使用该表,因此主键是另一个表中的外键。如果用户不选择回答该字段,外键的值将是多少?他们之间实际上没有任何关系。你可以用很多方法来做到这一点。您可以为这些选项创建一个表,然后您可以选择您喜欢的任何主键,自动递增或不自动递增。在编写html时,只需使用selecte

制作表格时,我总是使用自动增量。现在我正试图为html
字段创建一个表,但问题是它被设置为可选,因此第一个
..
的值必须为
0
。这是否意味着当我构造表时,第一个自动增量也必须从0开始?这是真的吗


编辑:谢谢您的评论。我将在某个
内部JOIN
语句中使用该表,因此主键是另一个表中的外键。如果用户不选择回答该字段,外键的值将是多少?

他们之间实际上没有任何关系。你可以用很多方法来做到这一点。您可以为这些选项创建一个表,然后您可以选择您喜欢的任何主键,自动递增或不自动递增。在编写html时,只需使用
selected
标记即可判断哪些选项是默认选项

<option value="x" selected="selected">x</option>
x

不过,这完全取决于您的数据库总体设计,您是否要为这些选项设置单独的表

如果需要从0开始计数(无效),则不能使用自动增量


但是,您可以用HTML硬编码默认的

我也考虑过这一点。但是如果用户不回答
字段(值为0),那么使用该字段作为外键的表的值是多少?我猜是
NULL
,但是如果列设置为INT,NULL不等于
0
?如果用户决定不使用select,您可以忽略查询中的“部分”。您使用的是什么后端语言?在PHP中,它类似于:
if($\u POST['select']==0)//donothing/alternative query
Yup,PHP。如果我用一个条件来回避它,那么外键呢?将其设置为
NULL
?我不知道您将实现什么目标。为什么要使用
内部联接
?使用
LEFT-JOIN
RIGHT-JOIN
,MySQL将为您填充空字段。这是真的。我想我会坚持插入一个
0
,因为一个空值会被转换成0:
-选择-
。你会如何设计它?请允许我问一下。我想我不应该在外键中加一个
notnull
,然后像这样:
columnname INT(9)
。在值转换为
0
时插入空白字符串,而插入
NULL
时保持为NULL。您会使用什么,
0
NULL
?如果列表可能根据用户输入而增长,我会使用类似于表的名称列之类的东西,我不明白您为什么会担心0之类的东西。只需显示表的内容,并让第一个选中的选项为空。选择一个。。。用户无论如何都会使用选择列表,对吗?哦,如果我的答案有用,请向上投票。我是那些真正关心投票并被投票激励的人之一:)