базата mysql в MySQL - SET

3 отговора 377 прегледа
#1

базата mysql в MySQL - SET

Някой може ли да ме просветли защо в базата данни mysql на mysql СУБД веднъж е използван типа SET (в таблици tables_priv,columns_priv) а в db таблицата са ползвани много колони с enum('Y','N'). Не е ли целта една и съща...защо е реализирано по различен начин?
Благодаря предварително за мненията.

Отговор
в отговор на jmut #2

Re: базата mysql в MySQL - SET

От мануала:
a column specified as SET('one', 'two') NOT NULL can have any of these values:
''
'one'
'two'
'one,two'

Демек, при SET можеш да имаш стойност която се състои от повече от една от разрешените при дефиницията стойности, разделени със запетая.

Що така са го направили, не знам, salle предполагам може да обясни. А и да даде по-нормална дефиниция на разликата между двата типа колони :)

Отговор
в отговор на тoшo #3

Re: базата mysql в MySQL - SET

То е ясно каква е разликата между enum и set типове колони. Със set си спестяваш many-to-many relations примерно.
Въпроса е че в случая целта коята трябва да се постигне (да се/да не се даде права върху колона/таблица/база данни) е една и съща. Просто при базите е реализирано с колони от топ енум а при колони и таблици е с тип сет.
Има ли някакво функционално обяснение - или просто на хората така им харесва

Отговор
в отговор на jmut #4

Re: базата mysql в MySQL - SET

Честно казано не помня а и ме мързи да разпитвам колегите що така.

mysql.* таблиците се зареждат в паметта при стартиране така, че няма някаква огромна разлика.

salle.online.bg/sig
Отговор