Q:

MySQL designing database

I am working actually on servers list and I'm wondering how can I design mysql table in the best way.
Index will render table with basic informations about server: address, port, players online, map, rank, ...
Server description, stats and other stuff will be in other subpage "more info about server"
In that case which design is better?
Servers(id, user_id, host, port, ...)
ServersInformations(id, server_id, players, map, ...)

Or just
Servers(id, user_id, host, port, players, map, rank)

and in
ServersInformations()

rest informations which will be rendered in subpage "more info about server"

A:

Typically the tables in the database do not necessarily reflect your pages, but they reflect the relationships of your data.
If we take your first case where you have 2 tables, Servers and ServerInformation. You have a foreign key ServerInformation.server_id that (I presume) references Servers.id. 
In this case what you are implying is that a Server could potentially have multiple entries in the ServerInformation table (i.e. a one-to-many relationship), all having the same server_id value, unless you make that unique, in which case it becomes a one-to-one relationship.
If you go for the second approach with one Servers table, you can still only get the fields you want for the index page. You will do a simple query that just gets the fields you need, for example: select id, user_id, host, port from servers
Unless you have a very specific reason for the first approach to separate the two tables (for example some Server entries don't have a ServerInformation entry, or you want some ServerInformation entries to have their server_id set to null if you set it to nullable), probably the one table approach is more adequate.

