create table customers (
id serial PRIMARY KEY,
name text
);
create table orders (
id serial PRIMARY KEY,
customer_id int
);
alter table orders ADD FOREIGN KEY (customer_id) REFERENCES customers(id) ;
customers
(А) со столбцами id
и name
, а ещё таблица orders
(Б) со столбцами id
и customer_id
.orders
имеет внешнюю (по отношению к ней) связь: orders.customer_id
-> customers.id
. Таблица customers
здесь выступает в качестве основной, поскольку именно она отвечает за то, какие id
для orders.customer_id
будут валидными, а какие нет. Т.е. "родительская" таблица это та, в которой хранятся "условия проверки" корректности значения в "дочерней".но потом подумал что это не правильно, т.к. номер заказа не может быть в родительской таблицеВот это, например, вообще не имеет смысла, потому что никакого номера заказа тут и нет.
можно ли в принципе кидать свою БД с просьбой об улучшении или оптимизации ?
И так до бесконечности.
<a href="javascript:history.back()">
CREATE TEMPORARY TABLE temp_table AS
SELECT printer,
CONCAT('{', GROUP_CONCAT(QUOTE(materials)), '}') AS materials
FROM printers
GROUP BY printer;
SELECT CONCAT('{"printer":"', printer, '", "materials":', materials, '}') AS json_format
FROM temp_table;
DROP TEMPORARY TABLE IF EXISTS temp_table;
{"printer":"Принтер цвет", "materials":{'A4','A4color','610*175m','610*50m','914*175m','914*50m','A3','A3color'}}
{"printer":"Принтер ч/б", "materials":{'A3','A4'}}
{"printer":"Принтер ч/б и цвет", "materials":{'610*175m','610*175m','914*175m','914*50m'}}
http://sql-tutorial.ru/ru/content.html
https://www.sql-ex.ru/?Lang=0