常量 DB Table 与代码中的常量
DB Table of constants vs constants in code
永恒的问题。
我有一个 table moments_of_day:
id name
1 Morning
2 Afternoon
3 Evening
4 Night
然后是另一个 table,膳食,用 moments_of_day_id 引用它。
然后,在我的 PHP 代码中,我想获取早上的所有餐点。
最好的选择是什么?我是否应该在我的 PHP MomentsOfDay 模型中重复常量来执行类似下一个代码的操作?
const MORNING = 1;
我认为重复常量可能很危险。如果将来 table 发生变化,我也必须将其添加到 MomentsOfDay 模型中。
你怎么看?
在你的情况下枚举类型更合适。
https://dev.mysql.com/doc/refman/5.0/en/enum.html
field_name ENUM('Morning', 'Afternoon', 'Evening', 'Night');
我认为这个问题不一定有确定性的答案,但您应该确定解决方案不只是相信 php 和 mysql 一致.我会在 php 中定义你想要的常量,然后使用一些关于它们的真实数据在 mysql 中查找记录。如果您在 php 中断言 const MORNING = 1;
,那么 1
将成为您的数据模型的真实部分,并且应该存储在 mysql 中。您仍然可以在 mysql 中创建 AUTO_INC
值,但这些应该被视为实现工件而不是应用程序数据。我不认为这个问题与模型的其他部分(例如,用户、权限、时间表等)有任何不同。您正在 PHP 中创建数据模型并使用 mysql 使其持久化。您将模型数据发送到 mysql 以保存它,然后使用相同的模型数据来检索它。
永恒的问题。
我有一个 table moments_of_day:
id name
1 Morning
2 Afternoon
3 Evening
4 Night
然后是另一个 table,膳食,用 moments_of_day_id 引用它。
然后,在我的 PHP 代码中,我想获取早上的所有餐点。
最好的选择是什么?我是否应该在我的 PHP MomentsOfDay 模型中重复常量来执行类似下一个代码的操作?
const MORNING = 1;
我认为重复常量可能很危险。如果将来 table 发生变化,我也必须将其添加到 MomentsOfDay 模型中。
你怎么看?
在你的情况下枚举类型更合适。 https://dev.mysql.com/doc/refman/5.0/en/enum.html
field_name ENUM('Morning', 'Afternoon', 'Evening', 'Night');
我认为这个问题不一定有确定性的答案,但您应该确定解决方案不只是相信 php 和 mysql 一致.我会在 php 中定义你想要的常量,然后使用一些关于它们的真实数据在 mysql 中查找记录。如果您在 php 中断言 const MORNING = 1;
,那么 1
将成为您的数据模型的真实部分,并且应该存储在 mysql 中。您仍然可以在 mysql 中创建 AUTO_INC
值,但这些应该被视为实现工件而不是应用程序数据。我不认为这个问题与模型的其他部分(例如,用户、权限、时间表等)有任何不同。您正在 PHP 中创建数据模型并使用 mysql 使其持久化。您将模型数据发送到 mysql 以保存它,然后使用相同的模型数据来检索它。