¿Prefiere nombres detallados cuando se trata de columnas de bases de datos? [cerrado

¿Cuál es tu preferencia?

Supongamos que tenemos una tabla de productos genéricos que tiene un ID, un nombre y una referencia de clave externa a una categoría. ¿Prefiere nombrar su mesa como:

CREATE TABLE Products
(
    ProductID int NOT NULL IDENTITY(1,1) PRIMARY KEY,
    CategoryID int NOT NULL FOREIGN KEY REFERENCES Categories(CategoryID),
    ProductName varchar(200) NOT NULL
)

uso de nombres explícitos para las columnas (por ejemplo,ProductNombre,ProductID), o algo así como:

CREATE TABLE Products
(
    ID int NOT NULL IDENTITY(1,1) PRIMARY KEY,
    CategoryID int NOT NULL FOREIGN KEY REFERENCES Categories(ID),
    Name varchar(200) NOT NULL
)

De lo que he visto, la convención en el mundo .NET debe ser explícita: las muestras tienden a usar el primer ejemplo, mientras que el mundo de código abierto y RoR favorecen el segundo. Personalmente, me parece el primero más fácil de leer y comprender a primera vista:select p.ProductID, p.ProductName, c.CategoryName from Categories c inner join Products p on c.CategoryID = p.CategoryID me parece mucho más natural queselect p.ID AS ProductID, p.Name AS ProductName, c.Name AS CategoryName from Categories c inner join Products p on c.ID = p.CategoryID

Supongo que dado el ejemplo rudimentario que proporcioné no es un gran problema, pero ¿qué tal cuando se trata de una gran cantidad de datos y tablas? Todavía encontraría que el primer ejemplo es mejor que el segundo, aunque posiblemente valga la pena analizar alguna combinación de los dos <Table>ID para la ID, pero soloName para el nombre?). Obviamente, en un proyecto existente, debe seguir las convenciones ya establecidas, pero ¿qué pasa con el nuevo desarrollo?

¿Cuál es tu preferencia?

Respuestas a la pregunta(12)

Su respuesta a la pregunta