永恒的问题。
我有一张桌子moment_of_day:
id name
1 Morning
2 Afternoon
3 Evening
4 Night
然后另一张桌子,饭菜,用moment_of_day_id引用它。
然后,在我的PHP代码中,我希望早上吃完所有的饭菜。
什么是最好的选择?我应该在我的PHP MomentsOfDay模型中重复常量来做下一个代码吗?
const MORNING = 1;
通过重复常数,我认为这可能很危险。如果将来表格更改,我还必须将其添加到MomentsOfDay模型。
您怎么看?
答案 0 :(得分:0)
在你的情况下更适合枚举类型。 https://dev.mysql.com/doc/refman/5.0/en/enum.html
field_name ENUM('Morning', 'Afternoon', 'Evening', 'Night');
答案 1 :(得分:0)
我不认为这个问题肯定有一个确定性的答案,但你应该确定一个不仅仅相信php和mysql对齐的解决方案。我会在php中定义你想要的常量然后使用一些关于它们的真实数据来查找mysql中的记录。如果在php中断言const MORNING = 1;
,那么1
将成为数据模型的真实部分,并且应该存储在mysql中。您仍然可以在mysql中创建AUTO_INC
值,但这些值应该被视为实现工件,而不是应用程序数据。我不认为这个问题与模型的其他部分有任何不同(例如,用户,权限,日程安排等)。您正在使用PHP创建数据模型并使用mysql使其持久化。您将模型数据发送到mysql以保留它,并使用相同的模型数据来检索它。