Q&A

  • 키(KEY)는 유일한값인가요....??????읽어봐주세요~!~
저는 ISAPI 게시판을 만들어 쓰고 있는 프로그래머입니다.



범용 게시판들처럼 로칼 DB로 멀티 게시판을 구현하였는데요... 아주 작동이 잘됩니다.

그런데 말이죠... 게시물이 저장될때 게시판 DB의 필드중 키값을 AUTO값으로

해놓았는데...

현재까지는 자동으로 잘 증가되더라구요...

그런데 말이죠... 수십,아니 수백,수천명이 동시에 접속해서 자료를 저장해되면

과연 그 키값이 유일할까요...



한순간이라도 유일하지 않는경우 키바이올레이션(?)이 발생하지 않겠습니까????



혹 Database 컴포넌트를 쓰라고 권하실 분들은 일단 위의 방법에 대해 한번씩

더 생각해 주십시요...

위의 문제점 빼고는 게시판시스템에서 DATABASE 컴포넌트를 써야할 이유가 없거든요...



과연 그 오토값이 유일하수 있을까요...

현재는 아주 이상없이 약 5개월이상 돌아가는데...

사람이 많이 와야 명석한 테스트....



답변이나 의견 부탁드립니다.



3  COMMENTS
  • Profile
    하얀까마귀 2000.06.09 12:24
    안녕하세요 하얀까마귀 입니다..



    음.. 답변이라고 하기보다 의견이라고 해야 겠네요..



    키는 당연히 유일해야 합니다.. 이건 디비에서 보장해 주는 값이죠...



    그런데 지금 말씀하신것 처럼.. 동시 접속자 수가 아주 많아서 서버가 감당을 하지



    못하게 되거나.. 별로 안정성이 없는 디비 엔진을 사용하였을경우 키가 깨져 버릴수



    도 있죠... 최악의 경우 insert가 이루어 지지 않고 튕겨 나와야 하는데.. 그렇지



    않고 같은값이 두번 들어 갈 수도 있습니다...



    예전 ASP 강좌를 들으러 갔었는데.. 그때 (ASP보다는 MS-SQL에 관해서 더 많이 얘기 한



    것 같아요 ) MS-SQL의 자동증가 필드에 대해 얼마나 안정성이 있느냐는 물음에.



    확실한 안정성을 보장한다고 말은 했지만 자동증가를 이용하지 않는게 더 좋지 않겠느냐



    라는 말로 끝냈었던 기억이 있습니다...



    음... 로컬 디비를 사용하신다고 했는데.. 어떤 엔진 인지 모르겠지만.. 원만큼 알려



    진거라면 안정성은 있다고 보는게 좋을것 같습니다..



    데이타 베이스 콤포넌트를 사용한다는게 어떻게 구현을 하겠다는 말씀이 없어서 잘



    모르겠지만.. 간단하게 max또는 카운트를 센다던지 하는 방식은 오히려 이게 더 위험하



    죠...



    개인적으로는 auto field보다는 구현하는걸 더 선호하고 안정성 있다고 생각하지만..



    그렇다고 auto field가 불안정 하다는건 절대 아닙니다.. 50보 100보죠 뭐...



    그럼.. 즐거운 시간 되세요...



    - 하얀까마귀 -



    송인표 wrote:

    > 저는 ISAPI 게시판을 만들어 쓰고 있는 프로그래머입니다.

    >

    > 범용 게시판들처럼 로칼 DB로 멀티 게시판을 구현하였는데요... 아주 작동이 잘됩니다.

    > 그런데 말이죠... 게시물이 저장될때 게시판 DB의 필드중 키값을 AUTO값으로

    > 해놓았는데...

    > 현재까지는 자동으로 잘 증가되더라구요...

    > 그런데 말이죠... 수십,아니 수백,수천명이 동시에 접속해서 자료를 저장해되면

    > 과연 그 키값이 유일할까요...

    >

    > 한순간이라도 유일하지 않는경우 키바이올레이션(?)이 발생하지 않겠습니까????

    >

    > 혹 Database 컴포넌트를 쓰라고 권하실 분들은 일단 위의 방법에 대해 한번씩

    > 더 생각해 주십시요...

    > 위의 문제점 빼고는 게시판시스템에서 DATABASE 컴포넌트를 써야할 이유가 없거든요...

    >

    > 과연 그 오토값이 유일하수 있을까요...

    > 현재는 아주 이상없이 약 5개월이상 돌아가는데...

    > 사람이 많이 와야 명석한 테스트....

    >

    > 답변이나 의견 부탁드립니다.

    >

  • Profile
    송인표 2000.06.09 12:46
    답변 고맙습니다.

    그냥 델파이4.0에서 BDE5.0을 써서 구현했죠..

    멀티게시판을 구현한것까진 좋았은데.. 전자상거래쪽 프로그램도 로컬로 구현해볼려니

    조금 불안한게 현실이군요...

    사실 게시판도 약 20개정도 남들이 쓰고 있는데..



    전 델파이를 쓰다보니 저렴하고 깔끔한 프로그램을 만들고 싶어요...

    MS-SQL이나 오라클등은 좀 비싸잖아요... 그리고 학교같은 곳에서는 엄두도 못내구요...



    사실 오토값을 사용자인증에 사용하면서 부터 문제가 됐어요...

    ODBC나 기타서버처럼 액션을 직렬화해서 DB를 사용하면 문제가 없을텐데...

    로칼이다보니... 인터넷을 통해 연결되는 사용자에게 유일한값의 일련번호를

    쿠키로 전송하기위해 기껏생각해낸 방법이 오토값을 이용하는 것이었어요...



    사용자가 접속하면 오토값 필드만 가지는 DB를 열어 한개의 레코드를 생성하고

    그 레코드의 오토값을 받아와서 사용자의 브라우져에 전송하여 사용하고 있죠...



    과연 문제가 없을까요...



    정말궁굼합니다.



    고수님들 자칭 중수의 고민좀 해결해 주세요...



    해결해주시면 게시판 사용권드립니다.(^^; 속시원하고 명쾌한 답변 부탁)

  • Profile
    하얀까마귀 2000.06.09 19:17
    안녕하세요 하얀까마귀 입니다..



    음... 전 고수가 아니라서 명쾌한 답변은 못드리겠구...



    우선.. 디비는 파라독스인가??? 아니면 MDB인것 같은데....



    개인적으로 파라독스는 써봤는데... 이놈이 오류를 발생시켰을때 데이타를 제대로 지키지



    못합니다... 어제도 말씀드렸지만.. 최악의 경우 자신없는 자료는 그냥 튕겨내야 하는데..



    이놈은 그냥 들어가 버리죠.. 당연히 그러니 데이타가 깨져버리는 경우도 종종 발생하고..



    안정성에서 그리 높은 점수는 주고싶지 않네요....



    아!! 그리고...



    전자상거래 정도라면 ( 규모에 따라 다르겠지만 ) 자료가 꾀 될것 같은데...



    상용 엔진을 쓰는게 아무래도 좋을것 같구요... 뭐 아니라도 상관은 없겠죠...



    그리고 단지 사용자 구분을 위한 번호가 필요하신 거라면...



    쓰레드로 임계영역 만들어서 하는게 더 좋지 않나요????



    단지 그러한 번호를 위한 거라면요..... 디비를 이용한다면 속도 문제도 있고...



    아니면 접속할때 사용자를 구분할 번호는 많은것 같은데...



    특정 원하는 규칙의 번호라면 쓰레드를 이용하는게 좋겠지만....



    제생각에는 그게 가장 좋을것 같네요....



    다른 디비라도 굳이 이걸 디비를 이용할 필요가 없는것 같네요...



    그럼.. 즐거운시간 되세요..



    - 하얀까마귀 -



    송인표 wrote:

    > 답변 고맙습니다.

    > 그냥 델파이4.0에서 BDE5.0을 써서 구현했죠..

    > 멀티게시판을 구현한것까진 좋았은데.. 전자상거래쪽 프로그램도 로컬로 구현해볼려니

    > 조금 불안한게 현실이군요...

    > 사실 게시판도 약 20개정도 남들이 쓰고 있는데..

    >

    > 전 델파이를 쓰다보니 저렴하고 깔끔한 프로그램을 만들고 싶어요...

    > MS-SQL이나 오라클등은 좀 비싸잖아요... 그리고 학교같은 곳에서는 엄두도 못내구요...

    >

    > 사실 오토값을 사용자인증에 사용하면서 부터 문제가 됐어요...

    > ODBC나 기타서버처럼 액션을 직렬화해서 DB를 사용하면 문제가 없을텐데...

    > 로칼이다보니... 인터넷을 통해 연결되는 사용자에게 유일한값의 일련번호를

    > 쿠키로 전송하기위해 기껏생각해낸 방법이 오토값을 이용하는 것이었어요...

    >

    > 사용자가 접속하면 오토값 필드만 가지는 DB를 열어 한개의 레코드를 생성하고

    > 그 레코드의 오토값을 받아와서 사용자의 브라우져에 전송하여 사용하고 있죠...

    >

    > 과연 문제가 없을까요...

    >

    > 정말궁굼합니다.

    >

    > 고수님들 자칭 중수의 고민좀 해결해 주세요...

    >

    > 해결해주시면 게시판 사용권드립니다.(^^; 속시원하고 명쾌한 답변 부탁)

    • psunk
    • 2000.06.09 21:03
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이재용
    • 2000.06.09 20:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.06.09 22:44
      안녕하세요 하얀까마귀 입니다.. 음... 이재용님 께서 하실려고 하는건 많은 사람이 아마 생각을 할겁니...
    • heimdal
    • 2000.06.09 20:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.06.09 22:35
      안녕하세요 하얀까마귀 입니다... Components 를 이용해 보세요... 이놈은 현재 폼의 콤포넌트 들을 ...
    • heimdal
      2000.06.09 23:01
      입력창은 다음과 같습니다.. 디비에디트박스 2개, 디비콤보박스 4개, 그리구 디비체크박스 5개..이렇게 되...
    • 하얀까마귀
      2000.06.09 23:20
      안녕하세요 하얀까마귀 입니다.. 음.. 죄송 제가 설명을 빠트린것 같네요.. 아마 소스를 복사를 하신...
    • 타락천사
      2000.06.09 22:28
      안녕하세여.. 타락임다..^^ 흠.. 스키마 화일만 만들면 되는데여...제가 짐 바뻐서 답변할 시간이 없네...
    • 2000.06.09 20:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.06.09 22:29
      안녕하세여.. 타락임다..^^ var c : char; s : string; begin s := c; end; 왕초보 타락...
    • 2000.06.09 23:05
      감사합니다. 근데 델파이는 이렇게도 가능하군요... 신기하당... string이 그냥 char를 받으니까 ...
    • 이천금
    • 2000.06.09 19:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강정한
      2000.07.29 18:51
      이천금 wrote: > * 사용환경 : 델파이4 / Windows NT 4.0 > * 에러 메시지 : > > 안녕하세요. > >...
    • 최은석
    • 2000.06.09 19:44
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.06.09 22:37
      안녕하세요 하얀까마귀 입니다.. 음... 윈도우즈에 훅을 걸어서 타이머로 시간 첵크 하는 방법 밖에 생...
    • 최은석
      2000.06.09 23:35
      하얀까마귀 wrote: > 안녕하세요 하얀까마귀 입니다.. > > 음... 윈도우즈에 훅을 걸어서 타이머로 시...
    • 하얀까마귀
      2000.06.09 23:43
      안녕하세요 하얀까마귀 입니다.. 음.. 죄송합니다.. 확인해 보니 한델이 아니고 델코네요... 죄송.. ...
    • 타락천사
      2000.06.09 22:36
      안녕하세여..타락임다..^^ 흠.. 아무도 답변이 없네여..ㅠㅠ 다덜 바쁘신가? 피곤하신가? 저두 ...
    • 어린왕자
      2000.06.09 19:53
      답변..감사합니다... 음.. 저가 궁금한건.. 먼저..자동으로 연결프로그램이 설정되게 하는 것이구요...
    • 하얀까마귀
      2000.06.09 21:54
      안녕하세요 하얀까마귀 입니다.. 설명은 생략하구 간단하게 말씀드릴께요.. 우선 연결은 레지스트리...
    • 왕초
      2000.06.10 00:24
      왕초보가....!! MessageBox(0,' 내용을 수정 하시겠읍니까?. ','실행확인??',MB_ICONQUESTION ...
    • 히지니
      2000.06.13 01:48
      히지니 wrote: > 음... > 근께... > 제목 그대로예...ocx를 만드는데... ActiveFormX에서 서버랑... > ...
    • 최용일
      2000.06.09 20:14
      안녕하세요. 최용일입니다. ComponentCount가 아니라 ControlCount를 써야해요. ComponentCount는 자...
    • 박준하
    • 2000.06.09 18:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 비룡득주
      2000.06.10 17:50
      안녕하세요!! 지금은 해결을 하셨는지 모르겠군여!! 저도 이문제 땜시 이틀동안 무려 Delphi를 20번도 더...
    • parkisu
      2000.06.10 06:16
      박준하 wrote: > Delphi5.0을 설치해서 작업을 하려고 하는데 > Components의 image가 원래의 image로 나...
    • 송인표
    • 2000.06.09 11:10
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.06.09 12:24
      안녕하세요 하얀까마귀 입니다.. 음.. 답변이라고 하기보다 의견이라고 해야 겠네요.. 키는 당연히 ...
    • 송인표
      2000.06.09 12:46
      답변 고맙습니다. 그냥 델파이4.0에서 BDE5.0을 써서 구현했죠.. 멀티게시판을 구현한것까진 좋았은데.. ...
    • 하얀까마귀
      2000.06.09 19:17
      안녕하세요 하얀까마귀 입니다.. 음... 전 고수가 아니라서 명쾌한 답변은 못드리겠구... 우선.. 디...
    • 최용락
    • 2000.06.09 10:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.06.09 13:08
      최용락 wrote: > Delphi 응용프로그램을 web-Browsor 상에서 나오게 하는 방법이 있나요? 보통 activ...
    • 장지용
      2000.06.09 09:49
      for i:=0 to Han.Count do => for i:=0 to Han.Count - 1 do 로 바꾸면 될듯한데요... [델파이] ...
    • [델파이]
      2000.06.09 09:55
      저기요 for i:=0 to Han.Count - 1 do 이렇게 하니까 되더라구요, 감사합니다. 근데요? " - 1 " 이 왜 ...
    • 나그네
      2000.06.09 11:58
      지나가다 적습니다. 숫자를 생각하시면 될것 같네요. 0 부터 시작했으니 당연히 -1 이 들어가야 겠지요...