複数のテーブルを使用してこのような性質のデータベースを作成しようとしたのはこれが初めてです。
プロジェクト:次回のオークション カタログを表示するだけでよいオークション ハウス
テーブル レイアウト:
- 毎年 4 ~ 5 の新しいカタログが作成され、新しいオークションごとに 1 つのカタログが作成されます。
- 各カタログは、「家具」、「ガラス製品」などの一般的なサブカテゴリに分割されます...
- 各サブカテゴリには、固有のロットが入力されます
- 各ロットには、一意のロット番号、タイトル、簡単な説明、写真、価格の見積もりがあります
最初の試みについて明確にしたいだけです。私の構造/用語は正しいですか?
テーブルを結合するいくつかのクエリを実行しましたが、要求したデータを取得しています。
これを進める前に、より多くの知識/経験を持っている人に、これが続くことを安心してもらいたいと思います.
これに関する任意のポインタは大歓迎です、または単純な「コードはホールドアップします」:)
DROP TABLE IF EXISTS catalogues;
CREATE TABLE IF NOT EXISTS catalogues (
catalogueid INT(11) NOT NULL AUTO_INCREMENT,
active TINYINT (1) DEFAULT '0',
auctiondate VARCHAR(15) DEFAULT NULL,
datecreated TIMESTAMP DEFAULT '0000-00-00 00:00:00',
lastmodified TIMESTAMP DEFAULT now() ON UPDATE now(),
PRIMARY KEY (catalogueid),
KEY catalogue (auctiondate)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO catalogues (active, auctiondate, datecreated,
lastmodified) VALUES
(0, '01-Jan-13', null, null),
(1, '01-Feb-13', null, null);
DROP TABLE IF EXISTS categories;
CREATE TABLE IF NOT EXISTS categories (
categoryid INT(11) NOT NULL AUTO_INCREMENT,
category VARCHAR(20) DEFAULT NULL,
PRIMARY KEY (categoryid),
KEY category (category(5))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO categories (category) VALUES
('Category 1'),
('Category 2'),
('Category 3'),
('Category 4');
DROP TABLE IF EXISTS lots;
CREATE TABLE IF NOT EXISTS lots (
lotid INT(11) NOT NULL AUTO_INCREMENT,
lotnumber INT(11) DEFAULT NULL,
title VARCHAR(128) DEFAULT NULL,
catalogueid INT(11) NOT NULL,
categoryid INT(11) NOT NULL,
estimatefrom INT(5) DEFAULT NULL,
estimateto INT(5) DEFAULT NULL,
photo VARCHAR(50) DEFAULT NULL,
datecreated TIMESTAMP DEFAULT '0000-00-00 00:00:00',
lastmodified TIMESTAMP DEFAULT now() ON UPDATE now(),
PRIMARY KEY (lotid),
KEY title (title(20)),
FOREIGN KEY (catalogueid) REFERENCES catalogues (catalogueid),
FOREIGN KEY (categoryid) REFERENCES categories (categoryid)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
INSERT INTO lots (lotnumber, title, catalogueid, categoryid,
estimatefrom, estimateto, photo, datecreated, lastmodified) VALUES
(1, 'Title 1', 1, 1, '1000', '1500', 'photo-1.jpg', null, null),
(5, 'Title 2', 1, 2, '500', '800', 'photo-2.jpg', null, null),
(10, 'Title 3', 2, 3, '80', '120', 'photo-3.jpg', null, null),
(15, 'Title 4', 2, 4, '1000', '1500', 'photo-4.jpg', null, null);
DROP TABLE IF EXISTS lotdescription;
CREATE TABLE IF NOT EXISTS lotdescription (
lotid INT(11) NOT NULL AUTO_INCREMENT,
description VARCHAR(500) DEFAULT NULL,
FULLTEXT KEY description_2 (description),
FOREIGN KEY (lotid) REFERENCES lots (lotid)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO lotdescription (description) VALUES
('Lot Description 1'),
('Lot Description 2'),
('Lot Description 3'),
('Lot Description 4');