前段時間,我意識到我想通過CSV格式來保持玩家在遊戲中的技能。在玩家的統計資料中,我製作了一個可以存儲爲CSV的技能。 (1,6,9,10等)我爲每個技能(姓名,效果)制定了一個「技能」表,並且當需要查看他們擁有的技能時,我所要做的就是查詢單個技能列並使用PHP的str_getcsv()來查看某個技能是否存在,因爲它將在數組中。但是,我的同事建議,一個優秀的系統是讓每個技能只是進入一個每個玩家將使用的主技能表,並且每個技能都有一個ID外鍵給玩家。我只是查詢這個表中的所有行,返回的將是他們的技能!數據庫列中的CSV - 不是一個好主意嗎?
起初我以爲這不會很好,但似乎互聯網不同意。我知道這種搜索不太容易 - 但我並不打算說,「玩家是否擁有X技能?」或者「用這個技能向我展示所有玩家!」。 最壞的情況下如果我想要這樣的數據,我只會爲它做一個PHP報告,但是,無可否認,這將是緩慢的。
但它看起來好像這是真的更快?!我很難找到一個超越「是的,這是好的,正常化」的硬答案。堆棧溢出可以幫助我嗎?
編輯:謝謝,夥計們!我從來沒有意識到這是多麼糟糕。對於這個騙局我很遺憾,但請相信我,我沒有至少沒有檢查過這些騙局就沒有輸入所有這些。 :P
恕我直言:我相信海報的意圖是(實質上)有一個播放器記錄包含一些值代表技能水平 - 即fixnum類型,而不是布爾值 - 所以第三個表會有player_id:skill_id:level(int)映射,或者(如果所有玩家都擁有所有技能),雙表設計可能會爲每種技能(int或適當類型)使用一列。絕對同意@達思格爾的意圖,但我認爲他/他可能會誤解這個意圖嗎? – BRFennPocock