私は最初の db スキーマを設計していますが、少し行き詰まっています。最初の支払いの後、追加の支払いでアイテム投稿を「拡張」する機能を提供しますが、私のスキーマでは、複数の支払い ID を 1 つのアイテムにリンクすることはできません。
単一のアイテムで複数の支払いを処理するためにこのスキーマを再構成する方法について、誰かアドバイスをくれないかと思っていました。可能であれば、全体を次のようなもので囲む必要はありません。
ID
Item
Payment
これは私が現在持っているものです:
-- Company Table
CREATE TABLE company (
id SERIAL PRIMARY KEY,
name VARCHAR(60) NOT NULL
);
-- Country Table
CREATE TABLE country (
id SERIAL PRIMARY KEY,
iso VARCHAR(2) NOT NULL,
name VARCHAR(100) NOT NULL
);
-- Location Table
CREATE TABLE location (
id SERIAL PRIMARY KEY,
name VARCHAR(250) NOT NULL,
city VARCHAR(100),
country_id INTEGER NOT NULL REFERENCES country (id),
coordinate VARCHAR(50) NOT NULL
);
-- Source Table
CREATE TABLE source (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
-- Item Table
CREATE TABLE item (
id SERIAL PRIMARY KEY,
solrid VARCHAR(25),
title VARCHAR(200) NOT NULL,
truncated_description VARCHAR(250) NOT NULL,
keyword_description VARCHAR(1000) NOT NULL,
page_url VARCHAR(150) NOT NULL,
create_date TIMESTAMP NOT NULL,
company_id INTEGER NOT NULL REFERENCES company (id),
source_id INTEGER NOT NULL REFERENCES source (id),
location_id INTEGER NOT NULL REFERENCES location (id)
);