所以我是新來的數據庫結構,我目前正在製作一個應用程序。我想要你們運行這個結構,以確保這是構建數據庫的最佳方式。製作一個堅實的基礎數據庫結構
所以這個應用程序,基本上是爲了學習的幾個實驗。因此,基本上,您登錄後,您將看到各種任務,然後創建一個會話。爲此您需要完成其他任務。每次試驗記錄,並在會議結束後(通過試驗的次數確定,然後應用程序返回到菜單。
CREATE TABLE `users` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`firstname` varchar(255) NOT NULL,
`lastname` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(60) NOT NULL,
`created_at` timestamp NOT NULL,
`updated_at` timestamp NOT NULL,
`remember_token` varchar(100) NOT NULL,
`status` varchar(100) NOT NULL,
`priviledges` varchar(100) NOT NULL,
`rewards` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `sessions` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`user_id` int(100) NOT NULL,
`task_type` varchar(255) NOT NULL,
`firstresponse_datetime` timestamp NOT NULL,
`lastresponse_datetime` timestamp NOT NULL,
`max_trials` int(4) NOT NULL,
`current_trial` int(4) NOT NULL,
`status` int(2) NOT NULL,
`wasted_stimuli` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `trials` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`session_id` int(255) NOT NULL,
`transfer` tinyint(1) NOT NULL,
`sd` varchar(255) NOT NULL,
`sample` varchar(255) NOT NULL,
`comparisons` varchar(255) NOT NULL,
`response` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
因此,這裏的事情。我擔心的是,應用程序是依賴於太例如,一般的應用程序是這樣的:一個頁面被顯示,一個請求被髮出,數據被輸入到數據庫中,一個頁面顯示在試驗之間,然後用戶被重定向到一個新的試用頁面。因此,在10-15秒的時間內,使用將會進行大約2次試驗。
我擔心的是服務器是一個網絡服務器,並且這將成爲php腳本的一部分,試驗將是INSERT,會話將被更新,用戶可能會更新通過令牌獲得UPDATED。但令牌可能是會話表的一部分。僅將UPDATE從2更改爲1表,只有1個插入。
此外,我關注的是wasted_stimuli行。這基本上是一個數組,每個試驗都會更新和擴展。在每次審判開始時,都會進行檢查。因此,我要麼從會話中檢索wasted_stimuli數組,要麼根據用戶執行SELECT sd WHERE JOIN SESSIONS和TRIALS BY ID到session_id。然後將sd放入數組中。
我不確定什麼是最好的標準。
謝謝!任何其他可以使它變得更好的東西都會對知道感興趣。
讓我知道如果您有任何疑問
增加'Laravel'標籤可能是一個 – Drew