Skip to content

Instantly share code, notes, and snippets.

@vendethiel
Forked from anonymous/gist:4431487
Created January 2, 2013 01:24
Show Gist options
  • Save vendethiel/4431489 to your computer and use it in GitHub Desktop.
Save vendethiel/4431489 to your computer and use it in GitHub Desktop.
News:
connection: other
actAs: [ Timestampable ]
columns:
author_id: int(9)
title: varchar(255)
content: text
relations:
Comments:
class: Comment
type: many
local: id
foreign: news_id
Author:
class: User
local: author_id
foreign: id
Comment:
connection: other
actAs:
Timestampable:
updated:
disabled: true
columns:
news_id: integer(9)
author_id: integer(9)
content: text
relations:
News:
local: news_id
foreign: id
Author:
class: User
local: author_id
foreign: id
ShopCategory:
connection: other
columns:
name: varchar(255)
relations:
Items:
class: ShopItem
type: many
local: id
foreign: category_id
ShopItem:
connection: other
columns:
category_id: int(9)
name: varchar(255)
cost: integer(9)
cost_vip: integer(9)
description: text
is_vip:
type: boolean
default: 0
is_lottery:
type: boolean
default: 0
is_hidden:
type: boolean
default: 0
relations:
Effects:
class: ShopItemEffect
type: many
local: id
foreign: item_id
Category:
class: ShopCategory
type: one
local: category_id
foreign: id
ShopItemEffect:
connection: other
columns:
item_id: integer(9)
item: int(11)
max: int(1)
relations:
Item:
class: ShopItem
local: item_id
foreign: id
User:
connection: other
columns:
guid: integer(9)
lastVote: integer(9)
votes: integer(9)
points:
type: integer(9)
default: 0
lastIP: integer(9)
culture: varchar(255)
main_char: integer(9)
relations:
Comments:
class: Comment
type: many
local: id
foreign: author_id
Review:
local: id
foreign: author_id
PollOptions:
class: PollOption
type: many
refClass: PollOptionUser
local: account_id
foreign: poll_option_id
Account:
local: guid
foreign: guid
StaffRole:
connection: other
columns:
account_id: int(9)
name: varchar(255)
relations:
Account:
local: account_id
foreign: guid
Log:
connection: other
columns:
account_id: int(9)
type: string
extra: string
at: int
relations:
Account:
local: account_id
foreign: guid
#Bug:
# connection: other
# actAs: [Timestampable]
# columns:
# title: varchar(255)
# description: text
# author: text
# state:
#Envoyé - en cours - résolu
# type: enum
# length: 3
# values: [0, 1, 2]
Review:
connection: other
actAs:
Timestampable:
updated:
disabled: true
columns:
author_id: integer(9)
comment: text
note: float
relations:
Author:
class: User
local: author_id
foreign: id
#Structure from DGuardCMS (Andaeriel)
Poll:
connection: other
columns:
name: string(255)
date_start: date
date_end: date
relations:
Options:
class: PollOption
type: many
local: id
foreign: poll_id
PollOption:
connection: other
columns:
poll_id: integer(9)
name: string(255)
relations:
Polleds:
class: User
refClass: PollOptionUser
type: many
local: poll_option_id
foreign: account_id
Poll:
local: poll_id
foreign: id
type: one
PollOptionUser:
connection: other
columns:
poll_option_id: integer(9)
account_id: integer(9)
relations:
User:
local: account_id
foreign: id
PollOption:
local: poll_option_id
foreign: id
#Nami-D0C: little explanation about my tickets system
# TicketCategory as Category actAs NestedSet
# and hasMany Ticket as Tickets
# Ticket can also be stated, i.e. locked, to do, resolved, resolving and deleted.
# and hasMany Anwer as Answers (it's as ALL boards systems with topics/posts: A thread (here Ticket) contains answers)
TicketCategory:
connection: other
actAs: #ok it would be nice if I can use both I18n-able & others but... It's impossible (and I don't like I18n-able so much ...)
NestedSet:
hasManyRoots: true #I.E. roots: ["D1", "D2", "WTG", "W", "DA"]
columns:
name: varchar(255)
icon: varchar(40)
description: text
relations:
Ticket:
local: id
foreign: category_id
alias: Tickets
type: many
Ticket:
connection: other
columns:
category_id: int(9)
state:
type: enum
values: [locked, to do, resolved, resolving, deleted]
name: varchar(255) #"topic" name
relations:
Category:
class: TicketCategory
local: category_id
foreign: id
Answers:
class: TicketAnswer
type: many
local: id
foreign: ticket_id
TicketAnswer:
connection: other
actAs: [Timestampable]
columns:
ticket_id: int(9)
author_id: int(9)
content: text
relations:
Ticket:
local: ticket_id
foreign: id
User:
local: author_id
foreign: id
alias: Author
PrivateMessageThread:
connection: other
columns:
title: varchar(255)
relations:
Answers:
class: PrivateMessageAnswer
type: many
local: id
foreign: thread_id
Receivers:
class: PrivateMessageThreadReceiver
type: many
local: id
foreign: thread_id
PrivateMessageAnswer:
connection: other
actAs:
Timestampable:
updated:
disabled: true
columns:
thread_id: int
author_id: int
message: text
relations:
Thread:
class: PrivateMessageThread
type: one
local: thread_id
foreign: id
Author:
class: User
local: author_id
foreign: guid
PrivateMessageThreadReceiver:
connection: other
columns:
thread_id: int
account_id: int
present:
type: bool
default: true
next_page:
type: int
default: 1
relations:
Thread:
class: PrivateMessageThread
local: thread_id
foreign: id
User:
local: account_id
foreign: guid
Account:
local: account_id
foreign: guid
Event:
connection: other
columns:
guild_id: int(9)
winner_id: int(9)
reward_id: int(9)
is_tombola: bool
name: varchar(255) #i.e. "goodbye server /rofl"
period: datetime
capacity:
type: int(9)
default: -1
relations:
Participants:
class: Character
refClass: EventParticipant
type: many
local: event_id
foreign: character_id
Guild:
local: guild_id
foreign: id
Winner:
class: Character
local: winner_id
foreign: guid
Reward:
class: ShopItem
local: reward_id
foreign: id
EventParticipant:
connection: other
columns:
event_id: int
character_id: int
Contest:
connection: other
columns:
reward_id: int
name: varchar
ended: #frozen since
type: int
default: 0
level: int #min level to vote
relations:
Jurors: #additionnal voting staff
class: User
refClass: ContestJuror
type: many
local: contest_id
foreign: user_id
Voters: #voters
class: User
refClass: ContestVoter
type: many
local: contest_id
foreign: user_id
Participants:
class: ContestParticipant
type: many
local: id
foreign: contest_id
Reward:
class: ShopItem
local: reward_id
foreign: id
ContestParticipant:
connection: other
columns:
contest_id: int
character_id: int
votes:
type: integer
default: 0
position:
#BELIEVE ME ! I do hate to do that. But since Doctrine does not allow
#->leftJoin('(SELECT * FROM ContestParticipant ORDER BY votes LIMIT #{ladder_limit})')
#I don't have much choice :( (FYI, mysql forbids LIMIT in subqueries).
type: integer
default: 0
relations:
Contest:
type: one
local: contest_id
foreign: id
Character:
type: one
local: character_id
foreign: guid
ContestJuror:
connection: other
columns:
contest_id: int
user_id: int
ContestVoter:
connection: other
columns:
contest_id: int
user_id: int
#todo cp_id ?
Tutorial:
connection: other
actAs:
I18n: #I18n behavior is buggy, and it sucks
fields: [title, content]
connection: other
generateFiles: true
generatePath: app/models/other/php/
columns:
title: string(255)
content: clob
Gallery:
actAs: [NestedSet] #manyRoots may be used, for instance, for User has_one Gallery. It allows to have different sets in one table
connection: other
columns:
title: string
relations:
Images:
class: GalleryImage
type: many
local: id
foreign: gallery_id
GalleryImage:
connection: other
columns:
gallery_id: int
title: varchar(255)
image: varchar(255)
relations:
Gallery:
local: gallery_id
foreign: id
Account:
connection: other
tableName: accounts
columns:
guid:
type: integer(4)
primary: true
autoincrement: true
account: string(30)
pass: string(50)
level:
type: integer(4)
default: '0'
email: string(100)
lastip: string(15)
lastconnectiondate: string(100)
question:
type: string(100)
default: 'DELETE?'
reponse:
type: string(100)
default: 'DELETE'
pseudo: string(30)
banned: bool
reload_needed: bool
bankkamas:
type: integer(4)
default: '0'
bank: string()
friends: string()
logged:
type: boolean
default: '0'
vip:
type: boolean
default: '0'
relations:
User:
local: guid
foreign: guid
Characters:
class: Character
type: many
local: guid
foreign: account
StaffRoles:
class: StaffRole
type: many
local: guid
foreign: account_id
Guild:
connection: other
tableName: guilds
columns:
id: integer(4)
name: string(50)
emblem: string(20)
lvl:
type: integer(4)
default: '1'
xp:
type: integer(8)
default: '0'
relations:
Members:
class: GuildMember
type: many
local: id
foreign: guild
GuildMember:
connection: other
tableName: guild_members
columns:
guid:
type: integer(4)
primary: true
guild: integer(4)
rank: integer(4)
rights: integer(4)
xpdone: integer(8)
pxp: integer(4)
relations:
Guild:
type: one
local: guild
foreign: id
Character:
local: guid
foreign: guid
Item:
connection: other
tableName: items
columns:
guid:
type: integer(4)
primary: true
template: integer(4)
qua: integer(4)
pos: integer(4)
stats: string()
Mount:
connection: other
tableName: mounts_data
columns:
id:
type: integer(4)
primary: true
color: integer(4)
sexe: integer(4)
name: string(30)
xp: integer(4)
level: integer(4)
endurance: integer(4)
amour: integer(4)
maturite: integer(4)
serenite: integer(4)
reproductions: integer(4)
fatigue: integer(4)
energie: integer(4)
items: string()
ancetres:
type: string(50)
default: ',,,,,,,,,,,,,'
relations:
Owner:
class: Character
local: id
foreign: mount
Character:
connection: other
tableName: personnages
columns:
guid:
type: integer(4)
primary: true
name: string(30)
sexe: integer(1)
class: integer(2)
color1: integer(4)
color2: integer(4)
color3: integer(4)
kamas: integer(4)
spellboost: integer(4)
capital: integer(4)
energy:
type: integer(4)
default: '10000'
level: integer(4)
xp:
type: integer(8)
default: '0'
size: integer(4)
gfx: integer(4)
alignement:
type: integer(4)
default: '0'
honor:
type: integer(4)
default: '0'
deshonor:
type: integer(4)
default: '0'
alvl:
type: integer(4)
default: '1'
account: integer(4)
vitalite: integer(4)
force:
type: integer(4)
default: '0'
sagesse:
type: integer(4)
default: '0'
intelligence:
type: integer(4)
default: '0'
chance:
type: integer(4)
default: '0'
agilite:
type: integer(4)
default: '0'
seespell:
type: integer(1)
default: '0'
seefriend:
type: integer(1)
default: '1'
canaux:
type: string(15)
default: '*#%!pi$:?'
map:
type: integer(4)
default: '8479'
cell: integer(4)
pdvper:
type: integer(4)
default: '100'
spells: string()
objets: string()
savepos:
type: string(20)
default: '10298,314'
zaaps:
type: string(250)
default: ''
jobs: string()
mountxpgive:
type: integer(4)
default: '0'
mount:
type: integer(4)
default: '-1'
relations:
Account:
local: account
foreign: guid
GuildMember:
local: guid
foreign: guid
LiveActions:
class: LiveAction
type: many
local: guid
foreign: playerid
Mount:
local: mount
foreign: id
Events:
class: Event
refClass: EventParticipant
type: many
local: character_id
foreign: event_id
ContestParticipations:
class: ContestParticipant
type: many
local: guid
foreign: character_id
Gift:
connection: other
tableName: gift
columns:
compte: int(11)
item: int(11)
max: int(1)
MountPark:
connection: other
tableName: mountpark_data
columns:
mapid:
type: integer(4)
primary: true
size: integer(4)
owner: integer(4)
guild:
type: integer(4)
default: '-1'
price:
type: integer(4)
default: '0'
data: string
BanIp:
connection: other
tableName: banip
columns:
ip:
type: varchar(15)
primary: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment