Ich mache eine Artikel-Website. Ich habe eine Datenbank namens CATEGORIES
mit Tabellen: Articles
, Entertainment
, Lifestyle
. Articles
enthält alle Einträge von Entertainment
und Lifestyle
. Entertainment
enthält alle Einträge von Unterhaltungstyp und Lifestyle
enthält alle Einträge des Lifestyle-Typs. Jede Tabelle hat 7 Spalten: ID, Kategorie (Kategorie des Artikels), Link (Link des Artikels), Titel (Titel des Artikels), Bild (Bild URL des Artikels), Counter (die Anzahl der Ansichten des Artikels), dateStamp (das Datum, an dem der Artikel geschrieben wurde).Verschiedene Kategorien in einer Tabelle oder mehreren Tabellen verwalten?
Wäre es effizienter, die Tabellen Lifestyle
und Entertainment
loszuwerden, und verlassen Sie sich einfach auf die Tabelle Articles
? Der Grund, warum ich sie auf diese Weise getrennt habe, ist, dass, wenn der Benutzer liest, sagen wir einen Unterhaltungsartikel, eine zufällige Liste von Unterhaltungsartikeln gezeigt wird. Um zufällige Artikel zu zeigen, nehme ich die höchste ID in der Unterhaltungstabelle, bekomme eine Zufallszahl zwischen 6 und der höchsten ID (6 ist die Anzahl der Artikel, die ich anzeigen möchte), und dann sage ich, dass ich 8 vom Zufallsgenerator bekomme, dann werden die Artikel 8 bis 3 angezeigt (DESC LIMIT 6
). Hier ist der Code:
<?php
$MAX_ID = $db->query("SELECT MAX(id) FROM Entertainment");
$MAX_ID = $MAX_ID->fetch_array();
$MAX_ID = $MAX_ID[0];
$RAND_NUM = mt_rand(6, $MAX_ID);
$resultSet = $db->query("SELECT * FROM Entertainment
WHERE id <= $RAND_NUM ORDER BY id DESC LIMIT 6");
if ($resultSet->num_rows != 0) {
$conditional = true;
$conditional2 = true;
echo "<div class='row'>";
while ($rows = $resultSet->fetch_assoc()) {
$image = $rows["image"];
$title = $rows["title"];
$link = $rows["link"];
$count = number_format($rows["Counter"]);
if ($conditional == true && $conditional2 == true) {
// display articles
} else {
// display other articles
}
}
}
Wenn ich die Entertainment
Tabelle entfernt, dann würde diese Abfrage nicht funktioniert, und ich weiß nicht, wie sonst würde ich es machen. Die letzte Frage ist, ob es effizienter wäre, die Tabellen in verschiedene Kategorien aufzuteilen oder die Tabellen zu einer Tabelle zusammenzufassen.
ja. Siehe Normalisierung – Strawberry
Wie Erdbeermönchen würde ich nicht weiter gehen, bevor Sie diese https://en.wikipedia.org/wiki/Database_normalization verstehen und in Ihrer Datenbank verwenden. Sie würden starke Kopfschmerzen bekommen, wenn Sie es weiterhin auf Ihre Art versuchen (auch Ihre Zukunft stimmt dem zu, sagte er mir). – paskl
@Strawberry Ja zu welcher Frage? – user2896120