What is missing, well that is sort of for you to decide / what is required. You should read up on Designing databases.
As far as the datatypes for what you have
The id fields should be a
INT
, orBIGINT
(depends on how big your application may become) and set as thePRIMARY KEY
.The names should be a
varchar
how long you want it depends on what your requirements are. Most first / list names are generally 25-30 characters max. Event names could be upwards to 250, depending on your requirements.The location will be similar to the name as a
VARCHAR
somewhere around 50-150, depending on your requirements.The date should be a
DATETIME
field.The description should be either a
VARCHAR(250)
or aTEXT
field.The permissions really depends on how you want to handle it. This could be an
INT
or aVARCHAR
(incase you want to serialize an array).Phone number could be an
INT
(if you want to strip all non-numeric characters and format it your own way) or aVARCHAR(15)
if you do not want to strip the charactersEMail should be a
VARCHAR(250)
.
Hopefully this helps, again it really depends on your requirements for the application and what you have envisioned. But the initial types can always be changed as your requirements change.
EDIT
And if you want to know full information about the different MySQL Data Types, read the manual: http://dev.mysql.com/doc/refman/5.0/en/data-types.html