Элементы базы данных с более чем одной категориейPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Элементы базы данных с более чем одной категорией

Сообщение Anonymous »

Я создаю трехступенчатую систему фильтрации, и пока она работает, но теперь я хочу иметь элементы с большим количеством категорий. Все идентификаторы категорий являются INT. Нужно ли мне это менять или какой лучший вариант это сделать?
Изображение

Изображение
На данный момент это мое решение. Итак, у меня есть столбец (избыточность) для разделения партнеров, которые присутствуют в базе данных более одного раза, поэтому я не получаю двойных результатов, если фильтрую по всем.
Но я хочу (если возможно) возможность записи большего количества категорий в Category_id/subcategory_id/subcategory2_id, поэтому мне не нужно много раз записывать одного партнера в базу данных, и я все равно могу получить его на PHP.
Вот моя база данных в виде кода:

Код: Выделить всё

-- phpMyAdmin SQL Dump
-- version 5.0.2
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Erstellungszeit: 19. Okt 2020 um 11:36
-- Server-Version: 10.4.13-MariaDB
-- PHP-Version: 7.4.8

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Datenbank: `partnerfilter`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `partner`
--

CREATE TABLE `partner` (
`partner_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
`subcategory_id` int(11) NOT NULL,
`subcategory2_id` int(11) NOT NULL,
`partner_name` text NOT NULL,
`partner_logo` text NOT NULL DEFAULT '[Kein Bild vorhanden]',
`partner_link` text NOT NULL,
`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
`redundancy` int(11) NOT NULL DEFAULT 1 COMMENT '1 = First Object\r\n0 = Doubled Object'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- RELATIONEN DER TABELLE `partner`:
--   `category_id`
--       `categories` -> `category_id`
--   `subcategory_id`
--       `subcategories` -> `subcategory_id`
--   `subcategory2_id`
--       `subcategories2` -> `subcategory2_id`
--

--
-- Daten für Tabelle `partner`
--

INSERT INTO `partner` (`partner_id`, `category_id`, `subcategory_id`, `subcategory2_id`, `partner_name`, `partner_logo`, `partner_link`, `status`, `redundancy`) VALUES
(2, 2, 2, 4, 'Udo Förster', 'url', '/udofoerster', 1, 1),
(3, 2, 2, 5, 'Testfirma', '[kein Logo vorhanden]', '/testfirma', 1, 1),
(4, 2, 2, 6, 'Brüninghoff', 'https://assets.kununu.com/images/images_logos/bruninghoff-gmbh-co-kg-194df.gif', '/brueninghoff', 1, 1),
(5, 2, 2, 4, 'Naturi', '[Kein Logo vorhanden]', '/naturi', 1, 1),
(6, 1, 6, 15, 'BlowerDoor', 'url', '/blowerdoor', 1, 1),
(7, 1, 9, 15, 'ante', 'https://www.ante-holz.de/fileadmin/_processed_/csm_Ante-Logo_bc1031754d.gif', '/ante', 1, 1),
(8, 1, 9, 15, 'ABA', 'url', '/aba-holz', 1, 1),
(9, 2, 13, 15, 'Udo Förster', 'url', '/udofoerster', 1, 0);

--
-- Indizes der exportierten Tabellen
--

--
-- Indizes für die Tabelle `partner`
--
ALTER TABLE `partner`
ADD PRIMARY KEY (`partner_id`),
ADD KEY `category_id` (`category_id`),
ADD KEY `subcategory_id` (`subcategory_id`),
ADD KEY `subcategory2_id` (`subcategory2_id`);

--
-- AUTO_INCREMENT für exportierte Tabellen
--

--
-- AUTO_INCREMENT für Tabelle `partner`
--
ALTER TABLE `partner`
MODIFY `partner_id` int(11) NOT NULL AUTO_INCREMENT,
AUTO_INCREMENT=10;

--
-- Constraints der exportierten Tabellen
--

--
-- Constraints der Tabelle `partner`
--
ALTER TABLE `partner`
ADD CONSTRAINT `partner_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`category_id`),
ADD CONSTRAINT `partner_ibfk_2` FOREIGN KEY (`subcategory_id`) REFERENCES `subcategories` (`subcategory_id`),
ADD CONSTRAINT `partner_ibfk_3` FOREIGN KEY (`subcategory2_id`) REFERENCES `subcategories2` (`subcategory2_id`);
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Спасибо :)

Подробнее здесь: https://stackoverflow.com/questions/644 ... categories
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»