The database size is probably not going to be any sort of bottleneck, unless 4chan or somebody gets ahold of it.
What are you foreseeing being the main use for this? I haven't taken part in any of the various holiday giveaways, so I'm not sure how they work.
In any case, are you prepared to become proficient in security? If you don't know what you're doing right now, I would suggest offloading a lot of your work to a web framework. Just about anything would help, and it would mean you don't have to worry as much about data loss or theft.
Basically, there are the basic goals:
The user is able to join. (Must force a link to B12 account somehow.)
The user is able to select giveaways to join that can be listed in chronological, alphabetical, or however order.
The user is able to unselect giveaways they have previously joined.
The user is allowed to create giveaways. (This is a potential source of malevolence, and needs safeguards. I might require intervention on my part, as well as limits.)
The user is able to modify how their giveaway works in basic ways (Only those who haven't won yet, giveaway makers, more than one copy, etc.)
The user will be given a list of names from their giveaway. If they so choose, a random winner will also be provided.
As for security... Well, I'll try my best, but honestly, I don't know anything about web security. If you have any other suggestions, I'd be glad to hear them.
Well, the system doesn't necessarily need to store the game keys or whatever. It can just store the contact information of those who won and those who are giving stuff away. The transactions themselves can be done by the forum users themselves, through PM or whatever.
That way you bypass a lot of the potential risks.
And yeah, a database like this, for Bay12 use, will have minimal data, so size definitely isn't a problem like Mephisto said.
Also, this is a wicked great project. Good luck! Consider making it open-source through GitHub or so. That way multiple people can contribute to it!
The system doesn't need to store game keys, and it will provide a direct link to the Bay12 account. I don't wish to involve myself in how they choose a winner unless they wish for random winners. That's all I'm willing to do. If they provide me with a game to distribute, I will attempt to, but that is not something I'd want from the system.
Also, I've never used GitHub. I tried to once, but I got a bit stuck, and then I was lost. I suppose I can try again
Thanks for the advice!
I personally started to make my websites with Python (http://www.cherrypy.org/ (CherryPy), http://www.sqlite.org/ and http://docs.python.org/3.3/library/sqlite3.html (SqLite) and https://pypi.python.org/pypi/lxml (lxml/lxsl)).
Sure PHP/MySql is hostable nearly everywhere but I had never learned PHP and so MySql was never my first choice too
Python and co is available everywhere too but it's not as usual as PHP to use it this way.
If you can program with Python or want to learn a new programming language I (personally) think that it is a nice try.
It is a somehow other approach than classical website building but it has its benefits I think and I like it.
If you want to know more details I can write some more (and provide some useful functions). Perhaps I find some time to write a HowTo or Tutorial but that would be a project for itself I think
Well, I know about as much of Python as I do of PHP and MySql, which is a lot more than I realized, so it isn't a problem with me to do either. The real issue was I wasn't sure of the host, and I know some hosts can't do Python, whereas PHP is universally accepted. I was looking into that, and while it did offer some impressive benefits, I don't think they're all that needed for this particular project. Everything I need to do is mostly database manipulation with a little bit of PHP.
But, if I were planning on making a bigger website with more features, I'd definitely consider it. Heck, I might even switch to it next year, since I'll probably look at my website and think it's junk by then