1) Если вам нужны внешние ключи отношений на уровне БД использовать InnoDB другое использование MyISAM
2) Вы можете хранить все категории в одну таблицу со схемой так
create table categories (
Category_ID int NOT NULL,
ParentCategory_ID int NOT NULL default 0,
CategoryName varchar(150)
);
с cATEGORY_ID первичного ключа
3)
$sql = select * from posts where category_id = 1;
mysql_query($sql);
редактировать: Схема после таблицы (пример)
create table posts (
Post_ID int NOT NULL,
Category_IDs varchar(50) NOT NULL,
POSTDescription varchar(1000),
POSTTime int NOT NULL
)
Post_ID
является первичным ключом posts
таблицы.
примечание к Category_IDs теперь varchar
магазина значение категорий в нем как 1,2,3
, если ваш пост принадлежит cateory 1,2 и 3 .. и для удаления всех сообщений, относящихся к категории 1 будет запускаться следующим запросом
$sql = DELETE
FROM `posts`
WHERE FIND_IN_SET('1', `Category_IDs`) >0;
нет нет! У меня есть таблица категорий, похожая на таблицу категорий, мне нужна таблица для posts_categories для хранения всех категорий сообщения, –
о вопросе 1, когда нужно использовать внешний ключ? –
Вы имеете в виду, что сообщение может принадлежать нескольким категориям в вашем случае? и вам нужен внешний ключ, если вы хотите связать две таблицы. например вы хотите, чтобы ваши сообщения были связаны с их категориями, тогда вы ставите 'Category_ID' в качестве внешнего ключа в таблице сообщений. –