Helo家伙我有像这张表Py2Exe documentation
这样的样本数据当时存储的最佳数据类型是什么?在时间列上,我需要能够存储DQ,DNS和DNF等术语。
注意:(DQ =取消资格,DNS =未启动,DNF =未完成)
答案 0 :(得分:2)
所以我理解的是,您希望将它们从单独的表中存储到一个表中的一列。使用VARCHAR。 VARCHAR用于存储各种字符,而不仅仅是字母。您不能在TIME或FLOAT列数据类型中存储字母,因此如果您必须将它们作为一列存储在一个表中,那么这些不是选项。
答案 1 :(得分:0)
$json = "{time:'9.41', status:'DQ'}";
你可以存储这样的数据,依靠JSON存储时间和时间。状态在一栏中。
要从PHP数据数组创建此数据(例如,如果要提取当前数据,将其设置为JSON格式,并更新现有数据集),则可以执行此操作...
$array = array("Athlete 1"=>array("time"=>"9.41", "status"=>"DQ"),"Athlete 2"=>array("time"=>"0.00", "status"=>"DNS"));
foreach($array as $athlete=>$data){
$json = json_encode($data); // encode their specific data
// insert json data string into athlete time/status cell
}
...或
$array = array("time"=>"9.41", "status"=>"DQ");
$athleteJSON = json_encode($array); // get json string for just this one athlete
然后你将它从数据库中拉出来,然后用PHP解析它......
$data = json_decode($json, true);
$time = $data['time'];
$status = $data['status'];
我个人认为你应该将时间存储在一列中,将状态存储在另一列中。这种方式更有意义。如果你不能这样做,那么将数据存储在JSON中将允许你的数据库做你想要的,并且可以被大量访问这些数据的不同语言使用。
也可以......
$time = 9.41;
$status = "DQ";
$data = "$time|$status";
这变成了一个字符串......“9.41 | DQ”
将其存储在数据库中,然后将其取出...
$data = "9.41|DQ"; // (taken from database result)
list($time, $status) = explode("|", $data); // split time & status
// that's it, now you have time & status variables for that cell!
此外,这里有一些合理的专栏意见......
id (auto increment, integer, primary key), tournament (varchar 255), event (int 11), event_name (varchar 255), heat (int 11), heat_desc (varchar 255-male/female/etc), athlete_name (varchar 50), time (varchar 15) ~ so float can't mess up decimal places, status (varchar 5 - for dq/dns/dnf), lane (int 11)
答案 2 :(得分:0)
您可以使用秒或毫秒...然后编码
DNS = nil
DFN = 0xFFFFFFFF
DQ = 0xFFFFFFFE
那样DNF和DQ就这样排序......
您只需要确保在进行显示时不要将这些高值转换为时间。