Vinzenz Mai: dbms mit tabellen die vererbt werden können?

Beitrag lesen

Hallo,

CREATE TABLE product {
  id int autoincrement
  name varchar 255
  preis float
}

CREATE TABLE monitor EXTENDS product {

product_id          -- Verweis auf die Produkt-ID

gewicht int
  resolution_x int
  resolution_y int

-- product_id ist Primärschlüssel der Tabelle
    -- und gleichzeitig Fremdschlüssel auf id der Tabelle product

}

d.h. eine 1:1-Beziehung, gleiches für Deine Drucker.

CREATE TABLE drucker EXTENDS product {   /// <------ EXTENDS
  gewicht int
  auflösung int
  geschwindigkeit int
}

Mit einer UNION der entsprechenden Joins bekommst Du Dein Abfrageergebnis.

[code lang=sql]
SELECT
    id,
    name,
    gewicht,
    'monitor' __entity
FROM
    product p
INNER JOIN
    monitor m
ON
    p.id = m.product_id
UNION
SELECT
    id,
    name,
    gewicht,
    'drucker' __entity
FROM
    product p
INNER JOIN
    drucker d
ON
    p.id = d.product_id

id | name            | gewicht   | __entity__

2  | EIZO Bildschirm | 4         | monitor
4  | HP Bildschirm   | 3         | monitor
5  | DELL Bildschirm | 3         | monitor
8  | BElinea Bildsc. | 5         | monitor
1  | HP Drucker      | 2         | drucker
89 | EPSON DRUCKER 2 | 1         | drucker

Du kannst nun die WHERE-Klausel in die beiden SELECTS einbringen und bekommst das gewünschte Ergebnis.

Ein solches Konzept fehlt mir extrem!

Es ist vorhanden.

Freundliche Grüße

Vinzenz