我使用了主题状态(例如,有效,无效,已预订等等),而我正在维持它们的简短形式。
但在编程期间,我需要在网格视图中显示其全名。
我应该遵循哪一步以及为什么?
1)在包含完整表单的运行时添加另一列。 2)每次应用条件检查状态并将其值应用于控制。 3)任何其他?
答案 0 :(得分:1)
你有一个简短形式的专栏,让我们假装:“行动”,“ina”,“bkd”等。
您想要显示“主题有效”,“主题无效”,“已预订”等。
正如你所说,你可以简单地添加一个包含这些值的列,但是这会浪费空间,你在每个具有该状态的记录中都有一个“主题活动”副本,对于所有其他记录也是如此。
在表示层中使用逻辑可能很好,在UI中有一些简单的查找表。例如,下拉列表通常具有该功能。如果您需要支持多种语言,这可能很有用。您肯定不希望数据库中有英文专栏,法文专栏和德文专栏。
另一种可能性是有一个参考表
act | Subject Active
ina | Subject Inactive
bkd | Already Booked
现在您的查询只是执行连接以检索文本值。在这种情况下,您可以为每种语言使用不同的列,而不会过度重复。
答案 1 :(得分:0)
您应该制作一个表格,用于在列中定义短格式,在另一列中定义全名
当您以全名获取数据时,您可以通过此表格获得简短格式
如果您正在使用其他表
,可以加入联接id shortform fullname
1 act Active
2 ina Inactive
3 boo Booked
select *,s.fullname from tableanother t join shorttable s on s.shortform = t.id
另一种方式你可以使用Flag 如 一个
有效1 不活跃2 预订3
我希望它对你有所帮助