SQL YABANCI KEY KULLANIMI?

0 Cevap php

Tamam benim örneğin basit bir veritabanı makeing im, kullanıcıların veri ve kullanıcı şirketin veri yoktur.

CREATE TABLE `users` (
  `UID` INT(25) NOT NULL AUTO_INCREMENT ,
  `username` VARCHAR(60) NOT NULL ,
  `password` VARCHAR(100) NOT NULL ,
  `ownername` VARCHAR(150) NOT NULL ,
  `userstatus` TINYINT(1) NOT NULL ,
  `userregistertime` DATETIME NOT NULL ,
  `userlastonline` DATETIME NOT NULL ,
  PRIMARY KEY (`UID`) ,
  INDEX `username` (`username` ASC) )
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;

CREATE TABLE `company` (
  `CID` INT(25) NOT NULL AUTO_INCREMENT ,
  `UID` INT(25) NOT NULL ,
  `companyname` VARCHAR(60) NOT NULL ,
  `companyaddress` VARCHAR(255) NOT NULL ,
  `companyemail` VARCHAR(255) NULL DEFAULT NULL ,
  `companyphone` VARCHAR(20) NOT NULL ,
  `companyimage` VARCHAR(255) NULL DEFAULT NULL ,
  `companyyahoo` VARCHAR(255) NULL DEFAULT NULL ,
  `companytwitter` VARCHAR(255) NULL DEFAULT NULL ,
  `companykaskus` VARCHAR(255) NULL DEFAULT NULL ,
  `companyfacebook` VARCHAR(255) NULL DEFAULT NULL ,
  `companytype` TINYINT(1) NOT NULL DEFAULT '0' ,
  `companystatus` TEXT NULL DEFAULT NULL ,
  `companytemplate` TEXT NULL DEFAULT NULL ,
  `companyintroduction` TEXT NULL DEFAULT NULL ,
  `partnership` TINYINT(1) NOT NULL DEFAULT '0' ,
  PRIMARY KEY (`CID`) ,
  INDEX `ownername` (`UID` ASC) ,
  INDEX `companyname` (`companyname` ASC) ,
  CONSTRAINT `ownernamecompany`
    FOREIGN KEY (`UID` )
    REFERENCES `users` (`UID` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

I kullanıcıların tabloya veri eklemek 1.Why sonra benim şirket UID tablosunu güncelleştirmek değil (uid otomatik artış olduğunu)?

Eğer php bilgi varsa im takmadan nasıl bakın.

$RegisterInsert1 = $dbConnect->prepare("INSERT INTO users (
`username`, `password`, `ownername`, `userregistertime`, `userlastonline`) VALUES (
:username, :password, :ownername, :userregistertime, :userlastonline)");
$RegisterInsert1->execute($RegisterData1); 

Gördüğünüz gibi, ben kullanıcı masanın üzerinde takılı, UID = 1 (oto) sonra adınızı, Şirfe, ownername, vb olsun. ama nedense benim şirket UID güncellenir değildir. null UID = 1 sonra kalan CID (oto) companyname null, vb olmalıdır.

2.am i sağ için bir yabancı anahtar kullanımını tanımlamak?

3.Please bana yabancı hakkı kullanımından doğru kullanımı ile kullanıcıların veri + şirket veri ekleme en iyi örnek vereyim.

nasıl im şu anda bunu yapıyor

// INSERT USERS DB
$RegisterInsert1 = $dbConnect->prepare("INSERT INTO users (
`username`, `password`, `ownername`, `userregistertime`, `userlastonline`) VALUES (
:username, :password, :ownername, :userregistertime, :userlastonline)");
$RegisterInsert1->execute($RegisterData1);

// GET USERS GIVEN AUTO GENERATED UID
// QUESTION ? THIS one should be automated by foreign useage ?
$GetUid = $dbConnect->prepare("SELECT UID FROM users WHERE username = :username");
$GetUid->execute($RegisterData3);
$UserID = $GetUid->fetch();
$RegisterData2['UID'] = $UserID;

// INSERT COMPANY INFO + UID
$RegisterInsert2 = $dbConnect->prepare("INSERT INTO company (
`UID`,`companyphone`,`partnership`) VALUES (
:UID, :companyphone, :partnership)");
$RegisterInsert2->execute($RegisterData2);

0 Cevap