I nomi di tabelle e campi devono essere descrittivi dell'entità di dominio che acquisiscono. Se l'entità di dominio è un cliente, dovresti chiamare la tabella "Clienti". Come le classi in un programma orientato agli oggetti, le tabelle seguono il Principio di Responsabilità Unica: ogni tabella dovrebbe memorizzare istanze di una cosa (con tutti i suoi attributi), e solo una cosa.
Per capire perché è così, immagina l'esatto contrario. Immagina un sistema così generico da archiviarlo in sole tre tabelle:
TableID Primary Key
Name Text
FieldID Primary Key
TableID Foreign Key
Name Text
Type Enum (Text, Number, etc.)
ValueID Primary Key
FieldID Foreign Key
Value Text
Si noti che non ci sono informazioni identificative nelle tabelle stesse. Devi eseguire una query per trovare la tabella che desideri. Quindi, è necessario eseguire un'altra query per ottenere il campo desiderato e un terzo per ottenere il valore del campo.
Se questo sembra familiare, dovrebbe: le prime due tabelle sono fondamentalmente le tabelle "di sistema" in un DBMS ordinario, che ora abbiamo reinventato. In effetti, abbiamo reinventato l'intero DBMS. Se dubiti che questo possa mai accadere, leggi qui:
link