givery-technology / sample-test

13 stars 23 forks source link

about user_id #19

Closed 28kayak closed 9 years ago

28kayak commented 9 years ago

readme.mdには、group_id についてはQ1に書いてあるように思いますが、user_idについては特に記述が無いように思います。 この二つのidは別物なのでしょうか? create.sqlにはイベントをホストしてる企業ごとにuser_idが振り分けられてるように思うのですが、user_companyとuser_id の関係性がよくわからないです、なぜなら、user tableには user_idというカラムがないのですが、eventにはuser_idがあるからです。 そこのあたりを明確にしていただければ、幸いです。 

In readme.md, there is a definition for a variable group_id on Q1, but there is not a definition for user_id, which is actually used in the given sql file. Are they two variables are different? I observed that each company that host an event has a user_id. However, I could not see the relationship between user_company and user_id because a user table does not have a column for user_id, but an event table has. It would be very thankful if you clarify about two variables little more. Thank you

shunjikonishi commented 9 years ago

@28kayak ご質問ありがとうございます。

この問題のテーブル構造は実際のシステムの構造を元に作っています。 そのシステムではユーザとしてstudent/companyという二種類のユーザが存在するんですが、これらが複数のテーブルに分かれておらず、usersテーブルに混在してgroup_idで種別を判断しているという構造になっています。

ネタばらしになってしまいますが、このやり方はあんまりよろしくないと思っていて、そのあたりをQ5で突っ込んで何かしらの改善案を提示してくれないかなぁというのがQ5の意図のひとつでもあります。 (もちろんQ5では他のどんな改善案もウェルカムです。)

カラム名については原則、各テーブルにシーケンシャルなprimary keyを設定する場合は「id」という名前に統一しています。 なので、usersテーブルの主キーカラムは「id」、それを他のテーブルから参照する場合は「user_id」となっています。 このあたりもご意見あればQ5に書いていただければ、幸いです。

これで回答になってますかね?

詳細な仕様についてはREADMEよりも*.spec.jsに書かれています。(というよりも、現在進行形でspec.jsだけを見ればAPI仕様がわかるようにしようと、api-first-specをブラッシュアップしています。)

日本語ネイティブの方だと思うので、こちらも参照してください。

http://qiita.com/shunjikonishi/items/87391a9a5262f4ec6dca

ちなみに現在Giveryでは実際にこれを使って新規システムの開発を開始しており、それなりに良い感触を得ています。