のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,607,218人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ【MySQL】下らねぇ質問はID出して書き込みやがれ 2

mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
802 : NAME IS - 2012/08/14(火) 01:50:07.05 ID:??? (+14,+26,-16)
具体的にどう記述すればサイトID得られるのかわからないんじゃないかな>>800の人は
803 : NAME IS - 2012/08/14(火) 08:56:07.54 ID:??? (+27,+29,-17)
なんか、一応IDは付けたけどキーが何か理解してないって感じだな。
805 : NAME IS - 2012/08/15(水) 11:18:04.36 ID:??? (-28,-29,-59)
オープンソースのECシステムをいじってたら、
テーブルのID値をauto incrementせずに、わざわざ1行・1カラムの別のテーブルに持ってて
そこから値を取り出してinsertして1加算していたんだけど、
これはなんでこういう実装になっているのでしょうか?
806 : NAME IS - 2012/08/15(水) 12:45:14.02 ID:ve1P3DnP (-22,+26,-4)
>>805
自分で番号を管理したいから
807 : NAME IS - 2012/08/15(水) 12:56:36.07 ID:??? (+19,+29,-2)
>>806
だからそれはなんで?
808 : NAME IS - 2012/08/15(水) 13:36:13.21 ID:??? (+27,+29,-18)
作者に聞けよ。

つか、普通に考えたら移植性のためだろ。
809 : NAME IS - 2012/08/15(水) 13:37:58.74 ID:??? (+38,+29,-65)
質問を変えます。別テーブルで管理することによって、何のメリットがあるのでしょうか。
ちなみにID番号を引っ張り出すテーブルでは、auto incrementが使われていて、1ずつ増えます。
そのシステムのスレで聞いてもわからなかったので、一般的な回答があればお聞きしたいです。
811 : NAME IS - 2012/08/15(水) 20:31:05.25 ID:??? (+14,+20,-4)
>>804
ファイルのほうがいいって教えてgooにかいてあったよ
812 : NAME IS - 2012/08/15(水) 21:54:03.80 ID:??? (+37,+29,-278)
>809
オートナンバーはレコードが保存されるまで発番されない
よって、

1.ユーザーがアプリの新規登録ボタンを押し、入力画面を開く
2.ユーザーが色々情報を入力する
3.ユーザーが保存ボタンを押す
4.新規にレコードが作成され、番号が発行される

という流れになる。
別テーブルで管理をすれば、

1.ユーザーがアプリの新規登録ボタンを押す
2.番号管理テーブルから発番し、入力画面を開く
3.ユーザーが色々情報を入力する(この時点で番号は分かっている)
4.ユーザーが保存ボタンを押す

となる。
ECシステムだと店舗と顧客の関係だろうから、顧客からの問い合わせを受けている時点で
案件を示す番号がわかっているには重要。
「次回問い合わせる際はこの番号をお伝えください」と顧客に伝えるため
そのため後者のような仕組みをとることはある。
…が、単なる連番なら詐称が簡単に出来るので、連番にはせずチェックディジットを含めた番号にすると思う。
813 : NAME IS - 2012/08/15(水) 22:52:56.13 ID:??? (-25,-29,-106)
どもです。

>>808
移植性というとMySQL以外のDB、auto incrementがないDBを考慮してるんですかね。
でもid取得用テーブルの方でauto increment使ってるのでそれは違うか…。

>>810
運用中にTRUNCATEやALTER TABLEが発行されることはないはずです。
レコード追加の頻度などからも、速度のためというわけではない感じがします。

>>812
ユーザーアクションで追加されるもの以外に、管理者が商品やカスタムページを追加する用のテーブルなど
全部がそうなっているので、ユーザー向けの理由ではなさそうです。

やっぱり作者(企業)に直接聞かないと意図不明すね。聞いたら教えてくれるのかな…。
814 : 804 - 2012/08/16(木) 14:21:04.67 ID:??? (+29,+29,-11)
>>811
自分でも調べてみました。DBにはバイナリの代わりにパスを保存するほうが無難なようですね。
ありがとうございました。
815 : NAME IS - 2012/08/16(木) 14:26:23.30 ID:??? (+27,+29,-63)
>>813
insertしたレコードのIDを取得する方法を 作者が分からなかったのでそういう実装にした みたいな
後ろ向きな理由の気がします。
817 : NAME IS - 2012/08/17(金) 01:13:07.71 ID:??? (+23,+28,-1)
>>816
いえ、全部InnoDBです。

>>815
なるほど…
818 : NAME IS - 2012/08/17(金) 14:47:50.86 ID:1eWs/aiB (+28,+28,-40)
1分刻みの為替のデータをDBで管理しています。
ここから例えば5分おきのデータを一発で取得できるクエリーを書くことは可能でしょうか。
819 : NAME IS - 2012/08/18(土) 16:55:17.15 ID:??? (+32,+29,-32)
>>794
>完璧と言われても嬉しくないw
>何か引っ掛けがあって間違いでもあったかと思ってたけど w
820 : NAME IS - 2012/08/19(日) 10:34:31.48 ID:??? (+31,+29,-15)
>>818
時刻を秒の部分落として秒か分になおして
5分で割り切れるやつを取りだすとかでいいんじゃないかな。
822 : NAME IS - 2012/08/19(日) 22:22:48.32 ID:??? (+31,+29,-5)
二行目が何を言ってるのか自体解らんでワロタ
824 : NAME IS - 2012/08/19(日) 23:46:58.58 ID:??? (+27,+29,-9)
>>822
すいませんもっと整理してわかりやすくいうべきでした
>>823
それでできました!助かりましたありがとう
826 : NAME IS - 2012/08/21(火) 21:29:04.86 ID:??? (+22,+29,-1)
ギャラクシー・エンジェル?
827 : NAME IS - 2012/08/22(水) 00:41:51.54 ID:??? (+27,+29,-3)

二行目が何を言ってるのか自体解らんで
828 : NAME IS - 2012/08/22(水) 11:48:32.54 ID:??? (-23,-29,-49)
>>817
それ、メインのデータテーブルのIDは全て数字でしたかの?
だったら、データテーブルのIDをauto_incrementにしたいんだけど
プリフィックスとしてアルファベットつけたかったとか。
もしくはkeyの構造のためとかそっちの可能性はないかな。

結構、後ろ向きな理由のほうが臭いけど。
830 : NAME IS - 2012/08/22(水) 22:09:09.82 ID:??? (-4,-6,-26)
単なるテキストファイルじゃなかったかな。
831 : NAME IS - 2012/08/23(木) 15:43:12.19 ID:??? (+38,+29,-52)
以前mysqlをかじって、最近また勉強しようと思ってるんですが、
当時買った入門書やリファレンスが4基準です。今は5ですよね。
4と5ってどれくらい違うのでしょうか?
4の時の本は役に立ちませんか?
832 : 829 - 2012/08/23(木) 20:20:01.30 ID:??? (+21,+28,+1)
>>830
ありがぽん
833 : NAME IS - 2012/08/23(木) 21:16:48.13 ID:??? (+33,+29,-28)
>>831
4勉強して差分を後でウェブで調べたほうがらく

しばらく使わない → 新しい本をかじる

のループはものすごい無駄。
834 : NAME IS - 2012/08/24(金) 09:23:17.34 ID:??? (-11,-9,-26)
単なるテキストファイルじゃなかったか
835 : NAME IS - 2012/08/24(金) 11:11:32.31 ID:??? (+27,+29,-3)
バックエンド変更したって話も聞かないしね。
838 : NAME IS - 2012/08/25(土) 00:17:08.84 ID:??? (-3,+22,-2)
>>837
アプリ側でやったほうがいいんではないでしょうか
840 : NAME IS - 2012/08/27(月) 01:39:20.21 ID:SNjxWl2b (+29,+29,-55)
ユーザーIDといえば採番ですが、パラメータにユーザーIDをくっつけると
いるのか、いないのかすぐバレるので文字列にしてみたのですが、
やっぱり何十万件とかたまってくると遅くなるから連番にしたほうがいいのでしょうか。
841 : NAME IS - 2012/08/27(月) 10:42:03.95 ID:??? (+24,+21,-6)
気にしないでよし
どうしても気になるならidと文字列の対応表も作っておけばいい
842 : NAME IS - 2012/08/27(月) 16:55:26.11 ID:??? (+31,+29,-1)
>>841
やっぱりそうっすよね。
ありがとん。
845 : NAME IS - 2012/09/04(火) 10:05:32.70 ID:??? (-27,-25,-36)
10分ごとを同じ数字になるように、例えば時刻データを秒になおして100で割れば
100秒ごとの数値が同じになる。
それをGROUP BY して集計関数で出せばいい。
846 : NAME IS - 2012/09/04(火) 19:06:48.85 ID:??? (+16,+28,+0)
さんくす。
847 : NAME IS - 2012/09/05(水) 08:32:23.86 ID:??? (-7,-30,-198)
PHPからデータベースを操作しています

 0.CREATE文でテーブルを作成
 1.INSERT文でレコードを挿入

これらをmysqli_multi_queryで1度に実行しました
さらに、

 2.INSERT文でレコードを挿入する
 3.INSERT文でレコードを挿入する
 4.INSERT文でレコードを挿入する...

というような感じで続いて行きます

さてテーブルを確認すると、
挿入されたレコードの順番(AUTO_INCREMENT設定したIDの順番)が、

 2→1→3→4...

となっていました
はじめにCREATE文だけを行い、実行後にmysqli_closeしてから同様の作業を続けた場合には、
1→2→3→4...という並びになりました

なぜだい?

MySQL v5.5.20
PHP v5.3.10
848 : 847 - 2012/09/05(水) 08:33:05.74 ID:j3gp/4Dx (+8,+23,+0)
失礼
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について