3

여기, 내 것이요USER

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(100) NOT NULL,
  `expiry` varchar(6) NOT NULL,
  `contact_id` int(11) NOT NULL,
  `email` varchar(255) NOT NULL,
  `password` varchar(100) NOT NULL,
  `level` int(3) NOT NULL,
  `active` tinyint(4) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`,`email`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

그리고 여기 내 contact_info 테이블이 있습니다.

CREATE TABLE IF NOT EXISTS `contact_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `email_address` varchar(255) NOT NULL,
  `company_name` varchar(255) NOT NULL,
  `license_number` varchar(255) NOT NULL,
  `phone` varchar(30) NOT NULL,
  `fax` varchar(30) NOT NULL,
  `mobile` varchar(30) NOT NULL,
  `category` varchar(100) NOT NULL,
  `country` varchar(20) NOT NULL,
  `state` varchar(20) NOT NULL,
  `city` varchar(100) NOT NULL,
  `postcode` varchar(50) NOT NULL,
  PRIMARY KEY (`id`,`email_address`),
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

시스템은 사용자 이름을 사용하여 사용자를 로그인합니다. 로그인 용 이메일을 사용하는 방식으로 수정하고 싶습니다. 그러나 사용자 테이블에는 email_address가 없습니다.

나는 사용자 테이블 (contact_info의 email_address)에 foreign key - email를 추가했다.

데이터베이스를 어떻게 쿼리해야합니까?


  • 각 사용자에 대해 두 개의 전자 메일 주소를 실제로 갖고 싶습니까? 또는 두 테이블 간의 일대일 관계입니까? - 2ndkauboy

1 답변


12

아니, 아니, 아니. 진심으로, 아니. 내가 저기에 와서 주위를 때 리게하지 마라 .-)

전자 메일 주소를 두 번 저장하면 세 번째 정규 양식이 손상됩니다.

관계는 짧은 것일뿐입니다.id. 두 테이블에서 ID가 동일하다는 것을 보증하지 않는다고 가정합니다 (즉,users.id반드시 내 동등하지는 않다.contact_info.id), 그냥ci_id~로users테이블에 대한 외래 키 역할을하는 테이블contact_info표.

그런 다음 사용자의usernameemail다음과 같이 될 것입니다 :


select u.username, ci.email
from users u, contact_info ci
where u.username = 'paxdiablo'
and u.ci_id = ci.id;

그런데 커뮤니티 위키에 대한 질문은 필요 없습니다. 그들은 여기에 완벽하게 적합합니다. 담당자가 있다면 더 많은 답변을 얻을 수 있습니다. 담당자의 부족은 물론 나에게 멈추지 않을 것이다. 나는 사람들에게 무엇을해야하는지 말하기를 좋아하기 때문에 나는 여기에있다. 그것은 강한 의지를 가진 아내와 6 세 미만의 두 아이가있는 가정에서 꽤 어렵다.


  • @ KPL, "Hmm. 이 버튼의 기능을 모르면 버튼을 눌러 & quot;을 (를) 볼 수 있습니다. 나는 내 사용자 중 하나가 아니라 내 테스터 중 한 명으로 당신을 사랑합니다 :-) - paxdiablo

연결된 질문


관련된 질문

최근 질문