我想弄清楚一種方法,我可以用它來建立一個系統,將權重分配給表中的獨立對象進行隨機加權排序 - 基於該項目的重要性。例如,如果一個比例是0-9。如果您分配了三個項目3,5,9,1,那麼系統將能夠對這些數字進行排序,並構建列表,以便在四個對象之間每個權重總計爲1。你將如何去分揀這些物品?如何動態分配基於項目重要性的權重?
目前,這是我對SQL:
CREATE TABLE IF NOT EXISTS `block_types` (
`ID` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`BlockTypeUID` varchar(35),
`Name` varchar(20),
`Weight` float,
`Turns` int(11),
`Score` int(11),
`Hitpoints` int(20),
`Rarity` int(11),
`Multiplier` int(1),
`Effect` int(11),
`Area` int(11),
PRIMARY KEY (`ID`)
) DEFAULT COLLATE=utf8_general_ci;
重量是浮動0.0001至1,並在那一刻,我基本上都是通過一個簡單的輸入表單手動分配它。這個想法是,Rarity會處理存儲0-9,並被用於根據所有其他條目自動計算新的權重 - 以便該表的總和等於1.
從數據庫返回值時不能使用'ORDER BY Weight(asc | desc)'?你從數據庫返回的對象是否需要某種相對值,這就是爲什麼你希望表的總和爲1的原因? – 2014-09-27 13:55:49