如何处理MySQL中的可选字段?

joh*_*ack 3 mysql

我有一个记录分类列表的MySQL表.我们不会强制用户加入以发布商家信息,因此商家信息并不总是user_id与之相关联.

因此,如果他们没有登录,我需要一种记录海报电子邮件的方法.

创建一个email有时空白但有时被填充的列是不好的做法吗?

或者有没有更好的方法来解决这个问题,我没有意识到?

Pas*_*TIN 6

创建一个有时会空白且有时被填充的列电子邮件是不好的做法吗?

这不是一个坏习惯,不是:juste使用NULL列 - 这就是它们存在的原因;-)
12.1.17.CREATE TABLE语法:在create table查询的column_definition部分,您可以指定NULLNOT NULL.

顺便说一句:使用NULL,字面意思是"没有价值"比使用某种"不可能的价值"更好,就像一个空字符串:NULL真的意味着"没有价值",并且让你的观点显而易见 - 而空字符串可能意味着代码中的错误.

我真的没有看到另一种"合乎逻辑"的方式,实际上......

但请注意,您必须在应用程序的代码中处理电子邮件的NULL值;当然;-)