AYUDA: Limitar numero de categorias en una base mysql

Vectra
12 de Enero del 2006
Hola a todos:
soy novato en esto de las bases de datos, y me gustaría que alguien me ayudase en esto, por favor. Tengo una base de datos en la cual he creado esta tabla:
CREATE TABLE categories (
id int(8) PRIMARY KEY AUTO_INCREMENT,
name varchar(20) NOT NULL,
description varchar(50) NOT NULL,
published varchar(4) NOT NULL DEFAULT \'YES\'

);
¿Sabéis cómo puedo limitarla para que sólo permita crear 2 categorías como máximo?.
¿Y cómo generar un aviso o alerta cuando el usuario quiera crear más de 2 categorías para informarle que no es posible?.

Gracias por todo, y perdón por mi ignorancia, pero si no pregunto, sigo sin saberlo.
Gracias

jim
12 de Enero del 2006
Te conviene resolverlo en la aplicación, no en la base de datos. Por ejemplo consultando la cantidad y permitiendo la insercion, o permitiendo insertar y luego consultar, tendras que analizar los problemas de concurrencia que puede implicar.

VECTRA
12 de Enero del 2006
Gracias Jim: es que, como ves, soy bastante ignorante en esto. El código que edita las categorías es el siguiente, ¿podrías decirme cómo limitar el número máximo de categorías?. Gracias:

function edit_category() { ?>
<h2><? echo l(edit_category) ?></h2><?
$categoryid = $_GET['id'];
$db = mysql_connect(s(dbhost),s(dbuname),s(dbpass));
mysql_select_db(s(dbname)) or die(s(dberror));
$query = "SELECT * FROM categories WHERE id = $categoryid";
$result = mysql_query($query);
while ($r = mysql_fetch_array($result)) {
if (isset($_SESSION['Username'])) {
echo "<p>". $r['name'] ." <img src="images/arrow.gif" alt="|" /> <a href="index.php?action=process&task=deletecategory&id=$r[id]">". l(delete_category) ."</a> <img src="images/arrow.gif" alt="|" /> ";
if ($r['published'] == "YES") { echo l(published); } else { echo l(unpublished); }
echo "</p>"; }
echo "<br /><br />"; ?>
<form name="post-text" method="post" action="index.php?action=process&task=edit_category">
<p>
<? echo l(name); ?>:<br /><input type="text" class="field" value="<?php echo $r['name']; ?>" name="name" /><br /><br />
<? echo l(description); ?>:<br /><input type="text" class="field" value="<?php echo $r['description']; ?>" name="description" /><br /><br /><?
if ($r['published'] == "YES") { ?>
<input type="checkbox" value="YES" name="publish" checked> <? echo l(publish_category);
} else { ?>
<input type="checkbox" value="YES" name="publish"> <? echo l(publish_category);
} ?><br /><br />
<input type="hidden" name="id" value="<?php echo $categoryid; ?>">
<input type="hidden" name="task" value="edit_category">
<input type="submit" name="submit_text" value="<? echo l(edit_category); ?>">
</p>
</form>
<? }
}