我目前正在建设一个Laravel 5.7应用,在那里我有指出,如果一些设施,可为建筑(模型)多个布尔列,如厕所是/否。这工作得很好,但我不知道当我添加更多的这些布尔列后,当我部署的应用程序会发生什么。
说我添加了一个布尔列“灯,”我可以给它的默认值0,而不是空。所以,现在我所有的现有建筑物会说,有没有“灯”(因为值为0),实际上它应该是这样的“不知道”或“不确定”像第三状态。
我应该使用的是/否ENUM列/未定义的呢?什么是此方案的最佳实践?
你当然可以创建他们他们作为nullable()
!它是一种常见的做法,IMO。
至于最佳实践去,这取决于你的应用程序应该如何使用。你希望用户注意到,国家还没有选择一个或其他方式吗?也许你正在显示一个提示,配置为空的人。在另一方面,它可能是更安全的假设,该选项应该默认为false,以便正确地显示。如果是这样的话,也许是通知可以走出去到你的用户更新该属性。
我会做什么,是创建单独的表,用OBJECT_ID和facility_id。现在,你可以有动态facilites表,并将它们与对象连接。连接只会有什么需要,因此不是每个对象的“轻”或别的东西。
是的,你是对的,这可能是一个问题,有时
但Boolean CAN BE USED SUCH AS TRUE (OR) FALSE ie) 0 (OR) 1
where in reality it should be something like 'don't know' or 'undefined' Like a third state.
所以在这种情况下使用可以使用Enum
例如:阁下的表将有ups_availablity
方案一:
如果你想用默认添加NotAvailable
只是通过默认的方法中的价值
$table->enum('ups_availablity', ['Available', 'NotAvailable'])->default('NotAvailable');
方案二:
如果你想添加Null
添加nullable
方法
$table->enum('ups_availablity', ['Available', 'NotAvailable'])->nullable();
如果您有任何澄清,请评论下面
希望它可以帮助