MySQL: лучший способ хранить MAC-адреса? - PullRequest
15 голосов
/ 23 декабря 2010

Какой тип поля лучше всего использовать для хранения MAC-адресов в базе данных MySQL? Кроме того, следует ли хранить его с определенным разделителем (двоеточие или тире) или хранить без разделителя?

Ответы [ 3 ]

29 голосов
/ 23 декабря 2010

использовать bigint без знака (8 байт), тогда вы можете:

select hex(mac_addr) from log;

и

insert into log (mac_addr) values (x'000CF15698AD');
2 голосов
/ 23 декабря 2010

Взгляните здесь .Обычно CHAR (12) - это хорошо, но детали зависят от ваших потребностей.Или просто используйте PostgreSQL, который имеет встроенный тип macaddr.

1 голос
/ 23 декабря 2010

Учитывая, что MySQL не поддерживает пользовательские расширения и не поддерживает произвольные расширения или плагины (только для механизмов хранения), лучше всего хранить его как CHAR (17) в виде строки ASCII в стандартной записи. (например, с разделителями двоеточий), или маленький BLOB и хранить байты напрямую. Однако для большинства приложений строковая запись будет более удобной.

Возможно, вы захотите связать его с триггером, который подтверждает, что это MAC-адрес, поскольку это действительно единственный способ обеспечить достоверность данных без поддержки пользовательских типов.

...