SQL релация

yuri

Registered
Имам две таблици
Как да създам връзката между Table1-NameLast и Table2-NameLast

или по-конкретно как да направя релацията между двете полета
Обърнах половината google но не успях да намерия нищо

[sql]CREATE TABLE ` Table1` (NameLast VARCHAR(100)PRIMARY KEY NOT NULL, Name VARCHAR(50) NOT NULL, Subname VARCHAR(50) NOT NULL, Lastname VARCHAR(50) NOT NULL, EGN VARCHAR(10) NOT NULL, Address VARCHAR(150) NOT NULL, Prof VARCHAR(50) NOT NULL, Edu VARCHAR(50) NOT NULL, DatePub DATETIME NOT NULL)[/sql]


[sql]CREATE TABLE `Table2` (№book VARCHAR(100) NOT NULL, Author VARCHAR(100) NOT NULL, Title VARCHAR(150) NOT NULL, DateTake DATETIME NOT NULL, DateReturn DATETIME NOT NULL, NameLast VARCHAR(100) PRIMARY KEY NOT NULL) [/sql]
 
най-лесния начин е от Phpmyadmin Избираш си базата после даваш на Disigner и после ще се оправиш :)
 
[sql]CREATE TABLE ` Merchant`
(
, `Id` int PRIMARY KEY NOT NULL
,NameLast VARCHAR(100) NOT NULL
, Name VARCHAR(50) NOT NULL
, Subname VARCHAR(50) NOT NULL
, Lastname VARCHAR(50) NOT NULL
, EGN VARCHAR(10) NOT NULL
, Address VARCHAR(150) NOT NULL
, Prof VARCHAR(50) NOT NULL
, Edu VARCHAR(50) NOT NULL
, DatePub DATETIME NOT NULL
)

CREATE TABLE `Books`
(
,`BookId` INT PRIMARY KEY NOT NULL
, MerchantId INT NOT NULL
, book VARCHAR(100) NOT NULL
, Author VARCHAR(100) NOT NULL
, Title VARCHAR(150) NOT NULL
, DateTake DATETIME NOT NULL
, DateReturn DATETIME NOT NULL
, NameLast VARCHAR(100) PRIMARY KEY NOT NULL
)

SELECT *
FROM Merchant m
INNER JOIN Books b ON b.MerchantId = m.Id[/sql]

Добавил съм ти нови полета, хвърли един поглед + заявката
 
@yuri
За да използваш силата на релационната база данни, оправи малко тази структура. Релацията по текстово поле определено не е оптималния вариант. В тези таблици, които се появиха до момента, има автори, книги, че и търговци изкочиха. Нямам идея какво точно правиш, да кажем, че е книжарница, би трябвало да имаш отделни таблици за авторите, за книгите, както и една комбинирана "автори_на_книгата", защото една книга може да има повече от един автор, след това идват издатествата, жанровете (категориите), клиентите, поръчките, съдържанието на поръчките. Разгледай един пример и прецени какво можеш да използваш (леко опростен, без индекси, и приемаме че категориите са само на едно ниво)

[sql]
create table `author` (
`id` int(10) unsigned not null primary key auto_increment,
`name` varchar(100) not null
) engine=InnoDB default charset='utf8';

create table `publisher` (
`id` int(10) unsigned not null primary key auto_increment,
`name` varchar(100) not null
) engine=InnoDB default charset='utf8';

create table `category` (
`id` int(10) unsigned not null primary key auto_increment,
`name` varchar(100) not null
) engine=InnoDB default charset='utf8';

create table `book` (
`id` int(10) unsigned not null primary key auto_increment,
`title` varchar(255) not null,
`publisher_id` int(10) unsigned not null,
`category_id` int(10) unsigned not null,
`description` text null,
`price` decimal(10,2) not null default '0.00',
foreign key `fk_publisher`(`publisher_id`) references `publisher`(`id`),
foreign key `fk_category`(`category_id`) references `category`(`id`)
) engine=InnoDB default charset='utf8';

create table `book_author` (
`id` int(10) unsigned not null primary key auto_increment,
`book_id` int(10) unsigned not null,
`author_id` int(10) unsigned not null,
foreign key `fk_book`(`book_id`) references `book`(`id`),
foreign key `fk_author`(`author_id`) references `author`(`id`)
) engine=InnoDB default charset='utf8';

create table `client` (
`id` int(10) unsigned not null primary key auto_increment,
`name` varchar(100) not null,
`address` varchar(255) not null
) engine=InnoDB default charset='utf8';

create table `purchase` (
`id` int(10) unsigned not null primary key auto_increment,
`client_id` int(10) unsigned not null,
`order_date` timestamp default current_timestamp,
foreign key `fk_client`(`client_id`) references `client`(`id`)
) engine=InnoDB default charset='utf8';

create table `purchase_item` (
`id` int(10) unsigned not null primary key auto_increment,
`purchase_id` int(10) unsigned not null,
`book_id` int(10) unsigned not null,
`price` decimal(10,2) not null default '0.00',
foreign key `fk_purchase`(`purchase_id`) references `purchase`(`id`),
foreign key `fk_book_item`(`book_id`) references `book`(`id`)
) engine=InnoDB default charset='utf8';
[/sql]
 

Back
Горе