звучит так, как будто вы слишком далеко зашли над идеей нормализации. помните, что идея заключается в том, что вы уменьшаете избыточность своих данных . ваш пример, кажется, указывает на то, что вы беспокоитесь о «избыточности» в метаинформации вашей базы данных.
в конечном счете, однако, user.name
и user.description
являются функциональными возможностями, отличными от product.name
и product.description
, и должны рассматриваться как таковые. для status
это зависит от того, что вы подразумеваете под этим. status
является просто индикатором активности продукта / записи пользователя или нет? если это так, то имеет смысл разделить это на другую таблицу.
используя предоставленную вами информацию, если «активно / просрочено / удалено» является просто указанием состояния в базе данных, то я бы определенно согласился со структурой таблицы следующим образом:
users products status
id id id
name name name
description description
status_id status_id
однако, если бы status
можно было предположительно изменить для представления чего-то семантически отличного (т. Е. Для пользователей, возможно, "активных / отставных / запущенных"), я бы предложил разделить это до будущего подтверждения дизайна:
user_status product_status
id id
name name
Короче,
, нормализуйте ваши данные, а не дизайн базы данных.