我想在mysql中创建一个表Person
,其中包含以下值:Name
,ID
,Password
,其他一些信息以及一个名为{{1}的表其值为items
,Item
,price
,因此每个stock
都会有自己的信息和一个对于这个Person
唯一的项目表
所以它看起来像这样。
Person
如果可以在MYSQL中完成,我会感兴趣,如果不可能的话,我的情况可能是什么。
答案 0 :(得分:1)
两个表,带有外键约束。
作为一个简单的例子,人表
CREATE TABLE person
( id INT NOT NULL PRIMARY KEY COMMENT 'PK'
, name VARCHAR(30)
) ENGINE=InnoDB
;
和项目表
CREATE TABLE item
( id INT NOT NULL PRIMARY KEY COMMENT 'PK'
, person_id INT NOT NULL COMMENT 'FK ref person.id'
, item VARCHAR(30)
, price DECIMAL(20,2)
, stock DECIMAL(18,0)
, CONSTRAINT FK_item_person FOREIGN KEY (person_id)
REFERENCES person (id) ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB
这实现了一对多的关系。一个人可以拥有零个,一个或多个项目。一个项目只属于一个人。
INSERT INTO person (id, name) VALUES
(1165,'Exc')
, (1066,'Foo')
;
INSERT INTO item (id, person_id, item, price, stock) VALUES
( 42, 1165, 'Sc', 20, 1 )
, ( 43, 1066, 'Ba', 12, 11 )
, ( 44, 1066, 'Co', 3, 2 )
;
答案 1 :(得分:0)
CREATE TABLE Person (
ID int,
Name varchar(100),
Pass varchar(100),
PRIMARY KEY ID);
CREATE TABLE Item(
ID int,
Item varchar(100),
Price varchar(100),
Stock varchar(100),
FOREIGN KEY (ID) REFERENCES Person(ID)
);
那些创建2个不同的表。 这会选择所有并加入它们。
Select * from Persons p
inner join Item i on p.ID = i.ID